Xu Hướng 4/2024 # Cách Tạo Và Ghi File Word, Pdf Trong C# Với Thư Viện Spire.doc, # Top 4 Yêu Thích

Có nhiều cách để tạo 1 và ghi vào file Word (DOC, DOCX) hoặc PDF với C#, trong đó cách thuận tiện nhất là dùng thư viện chúng tôi của e-iceblue. Trang web này cung cấp 2 nhóm sản phẩm: 1 nhóm miễn phí và 1 nhóm thương mại. Trong bài này chúng ta sẽ sử dụng thư viện chúng tôi miễn phí, thư viện này giới hạn 500 đoạn và 25 bảng trong 1 tập tin Word và PDF, đủ để tạo 1 tập tin có dung lượng vừa phải.

Hoặc bạn tải về theo link google drive mình chuẩn bị sẵn Tại Đây

Bạn hãy tạo 1 dự án C# Console và nhúng thư viện này vào dự án vừa tạo.

Cách Cài đặt trực tiếp chúng tôi chúng tôi vào Windows.

Bạn tạo 1 Project Console App(.Net Framework)

Tiếp theo bạn chuột phải vào References và chọn tiếp vào Manage Nuger Packafes…

Sau đó bạn tìm kiếm với từ khóa Spire, nó sẽ sổ ra một list các thư viện, bạn hãy chọn thư viện Spire.Office (Sẽ bao gồm đọc tất cả các file office và cả pdf) hoặc chọn chúng tôi và chúng tôi .

Sau khi cài xong nếu bạn thấy trong References có những thư viện như hình bên dưới thì đã add thành công.

Giờ thì bắt đầu Code.

Tạo file word và ghi 1 đoạn văn bản trong C#

Ví dụ sau tạo 1 đoạn văn bản “Hello World!” in đậm canh giữa vào tập tin mới chúng tôi (hoặc test.pdf). Tập tin mới sẽ nằm ở thư mục Debug, bạn có thể tùy chỉnh đường dẫn tập tin tùy ý nếu muốn.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Spire.Doc;

using Spire.Pdf;

using Spire.Doc.Documents;

using Spire.Doc.Fields;

namespace TestProject

{

class Program

{

static void Main(string[] args)

{

Document doc = new Document();

Paragraph paragraph = doc.AddSection().AddParagraph();

Spire.Doc.Fields.TextRange text = paragraph.AppendText("Hello World!");

chúng tôi = true;

paragraph.Format.TextAlignment = TextAlignment.Center;

paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center;

doc.SaveToFile("test.doc", Spire.Doc.FileFormat.Doc);

doc.Close();

}

}

}

Thêm 1 đoạn mới vào file Word C Sharp

Nhìn lại code trên, tại dòng 21, khi tạo 1 đoạn mới chúng ta dùng đoạn mã Paragraph paragraph = doc.AddSection().AddParagraph();

Tuy nhiên để thêm 1 đoạn mới nữa bạn phải dùng hàm doc.Sections[0].AddParagraph(); như trong ví dụ sau đây.

// đoạn mới tên biến là paragraph2

Paragraph paragraph2 = doc.Sections[0].AddParagraph();

// tên văn bản mới là text2

Spire.Doc.Fields.TextRange text2 = paragraph2.AppendText("Nhập nội dung đoạn mới");

text2.CharacterFormat.FontSize = 18;

text2.CharacterFormat.Bold = true;

Canh Tab

Để canh Tab thì dùng paragraph2.Format.Tabs.AddTab(175).Justification = TabJustification.Right; với TabJustification.Right là Tab phải và 175 (float) là vị trí Tab, ngoài ra có có Tab trái ở vị trí 375 (Left) và Tab giữa (Centered) chưa được thêm vào.

Paragraph paragraph2 = doc.Sections[0].AddParagraph();

// Canh Tab phải vị trí 175

paragraph2.Format.Tabs.AddTab(175).Justification = TabJustification.Right;

paragraph2.Format.Tabs.AddTab(375).Justification = TabJustification.Left;

//paragraph2.Format.Tabs.AddTab(175).Justification = TabJustification.Centered;

// Phải có t để dịch đến Tab cần canh

Spire.Doc.Fields.TextRange text2 = paragraph2.AppendText("t Canh phải t Canh trái");

Chèn hình

Đầu tiên bạn phải thêm thư viện System.Drawing vào dự án (Add Reference), sau đó gọi 2 namespace ở trên đầu file code.

using Spire.Doc.Fields;

using System.Drawing;

Tiếp theo tạo đối tượng Bitmap và DocPicture để thêm hình vào đối tượng Document.

// Tạo đối tượng hình ảnh DocPicture (using using Spire.Doc.Fields;)

DocPicture picture = doc.Sections[0].Paragraphs[0].AppendPicture(b1);

// Vị trí ảnh theo chiều dọc, ngang

picture.HorizontalPosition = 50.0F;

picture.VerticalPosition = 200.0F;

// Kích thước ảnh

picture.Width = 150;

picture.Height = 100;

picture.TextWrappingStyle = TextWrappingStyle.InFrontOfText;

Thêm bảng biểu

Chúng ta dùng đối tượng Table để tạo bảng, trong đó tạo dòng tiêu đề trước và phần dữ liệu từng dòng sau.

// Dữ liệu mẫu

// Tạo đối tượng bảng Table

Spire.Doc.Table table = doc.Sections[0].AddTable(true);

// Tạo cột

String[] Header = { "STT", "Tên"};

// Số dòng và số cột cho bảng

table.ResetCells(list.Count + 1, Header.Length);

// Độ rộng bảng ở dòng 0 và 2 cột STT và Tên (tạo tiêu đề bảng)

doc.Sections[0].Tables[0].Rows[0].Cells[0].Width = 200;

doc.Sections[0].Tables[0].Rows[0].Cells[1].Width = 200;

// Tạo dòng tiêu đề cho bảng (dòng 0)

Spire.Doc.TableRow FRow = table.Rows[0];

FRow.IsHeader = true;

FRow.Height = 23;

for (int i = 0; i < Header.Length; i++)

{

Paragraph p = FRow.Cells[i].AddParagraph();

FRow.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle;

p.Format.HorizontalAlignment = HorizontalAlignment.Center;

Spire.Doc.Fields.TextRange TR = p.AppendText(Header[i]);

TR.CharacterFormat.FontName = "Times New Roman";

TR.CharacterFormat.FontSize = 13;

chúng tôi = true;

}

// Định dạng dữ liệu từng dòng (lấy từ list)

for (int r = 0; r < list.Count; r++)

{

doc.Sections[0].Tables[0].Rows[r + 1].Cells[0].Width = 200;

doc.Sections[0].Tables[0].Rows[r + 1].Cells[1].Width = 200;

Spire.Doc.TableRow DataRow = table.Rows[r + 1];

DataRow.Height = 20;

DataRow.Cells[0].CellFormat.VerticalAlignment = VerticalAlignment.Middle;

Paragraph p1 = DataRow.Cells[0].AddParagraph();

Spire.Doc.Fields.TextRange TR1 = p1.AppendText((r + 1).ToString());

p1.Format.HorizontalAlignment = HorizontalAlignment.Center;

DataRow.Cells[1].CellFormat.VerticalAlignment = VerticalAlignment.Middle;

Paragraph p2 = DataRow.Cells[1].AddParagraph();

Spire.Doc.Fields.TextRange TR2 = p2.AppendText(list[r].ToString());

p2.Format.HorizontalAlignment = HorizontalAlignment.Center;

}

Tạo file word và ghi 1 đoạn văn bản nhập từ bàn phím trong C#

Tương tự như đoạn code mẫu bên trên. ở phần này mình có thay đổi một chút xíu đó là những gì cần ghi vào file word sẽ phải nhập từ màn hình Console. Các bạn có thể tham khảo.

using System.Drawing;

using System;

using Spire.Doc;

using Spire.Doc.Documents;

using Spire.Doc.Fields;

using Spire.Doc.Formatting;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

//ghi text vao file word su dụng phương thức Spire

namespace ghifileword

{

class Program

{

static void Main(string[] args)

{

Document doc = new Document();

Section sec = doc.AddSection();

Paragraph par = sec.AddParagraph();

TextBox textBox = par.AppendTextBox(180, 30);

textBox.Format.VerticalOrigin = VerticalOrigin.Margin;

textBox.Format.VerticalPosition = 100;

textBox.Format.HorizontalOrigin = HorizontalOrigin.Margin;

textBox.Format.HorizontalPosition = 50;

textBox.Format.NoLine = true;

CharacterFormat format = new CharacterFormat(doc);

format.FontName = "Calibri";

format.FontSize = 15;

chúng tôi = true;

Paragraph par1 = textBox.Body.AddParagraph();

string line = "";

Console.WriteLine("Nhap chu can ghi vao file word : ");

line = Console.ReadLine();

par1.AppendText(line).ApplyCharacterFormat(format);

doc.SaveToFile("D:/HKIII/1. BTCL/tuan4_chuong2_3/ghifileword/result.docx", FileFormat.Docx);

doc.SaveToFile("D:/HKIII/1. BTCL/tuan4_chuong2_3/ghifileword/result.doc", FileFormat.Doc);

}

}

}