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 Spire.Doc 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 Spire.Doc 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.
Đầu tiên, chúng ta tải 2 thư viện Spire.Doc và Spire.PDF bản miễn phí ở địa chỉ: https://www.e-iceblue.com/Download/download-word-for-net-free.html và https://www.e-iceblue.com/Download/download-pdf-for-net-free.html.
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 Spire.Doc, Spire.PDF 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 Spire.PDF và Spire.Doc.
Bạn tiếp tục nhấn Install và nhấn vào I Accept và chờ cho nó tự động cài đặt thư viện vào nhé!
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 test.doc (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) { // Tạo đối tượng tài liệu (Document) Document doc = new Document(); // Tạo đối tượng đoạn (Paragraph) Paragraph paragraph = doc.AddSection().AddParagraph(); // Tạo văn bản (TextRange) Spire.Doc.Fields.TextRange text = paragraph.AppendText("Hello World!"); //text.CharacterFormat.Italic = true; // in nghiêng //text.CharacterFormat.UnderlineStyle = UnderlineStyle.Single; // gạch chân text.CharacterFormat.Bold = true; // kiểu in đậm paragraph.Format.TextAlignment = TextAlignment.Center; // văn bản canh giữa paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center; // đoạn canh giữa //paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left; // đoạn canh trái //paragraph.Format.HorizontalAlignment = HorizontalAlignment.Right; // đoạn canh phải // Lưu đối tượng tài liệu vào tập tin test.doc (nằm ở thư mục Debug của dự án) doc.SaveToFile("test.doc", Spire.Doc.FileFormat.Doc); // doc.SaveToFile("test.pdf", Spire.Doc.FileFormat.PDF); -- tạo PDF // đóng đối tượng 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; // Kiểu chèn ảnh nổi trên văn bản 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 List<string> list = new List<string> { "One", "True", "Three" }; // 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++) { // Định dạng cell Paragraph p = FRow.Cells[i].AddParagraph(); FRow.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle; p.Format.HorizontalAlignment = HorizontalAlignment.Center; // Định dạng văn bản trong bảng Spire.Doc.Fields.TextRange TR = p.AppendText(Header[i]); TR.CharacterFormat.FontName = "Times New Roman"; TR.CharacterFormat.FontSize = 13; TR.CharacterFormat.Bold = 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; // Định dạng dòng thứ r + 1 (bỏ dòng đầu là tiêu đề) 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()); // STT 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()); // Tên 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; format.Bold = 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); } } }
Tài liệu tham khảo:
Xem thêm:
- Thuật Toán Tính Tổng Cộng Hai Số Cực Lớn JAVA
- Khóa Học Thiết Kế Website Với WIX Cho Người Mới Bắt Đầu
- Download Classic Game Windows 7 dành cho Windows 10 / 8.1
- Share bộ code web HTML5 tỏ tình đơn giản nhưng thật ngọt ngào
- Source Code Logo Avata giống Porn Hub đẹp mắt
- Share Source Code Ma Trận Html Viết Bằng Canvas Tuyệt Đẹp
- Download Revo Uninstaller Pro Full Repack Update Mới nhất 2019 – Gỡ bỏ phần mềm tiện dụng hiệu quả
- Chia Sẻ Khóa Học Python Cho Người Mới Bắt Đầu (Python for Beginners: Learn with Examples and Mini-Project)
CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ
Leave a Reply