WPF使用Aspose.Words導出Word文檔


一、創建Word文檔模板

  1. 分析需要導出的word文檔,將固定的內容和由程序生成的內容分開;
  2. 創建一個word(例如:Template.doc)文檔,將固定的內容按照一定的格式寫入當前文檔中;
  3. 打開Template.doc在需要動態插入內容的地方插入書簽;

二、創建所需要的對象

 Aspose.Words.Document doc = new Aspose.Words.Document("Word文檔模板的路徑");
 Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);

三、指定書簽插入文字

 builder.MoveToBookmark("word模板中書簽的名稱");
 builder.Font.Size = 14;
 builder.Font.Name = "黑體";
 builder.Write("文字內容");

四、指定書簽插入表格

//插入一個兩行三列的table
builder.MoveToBookmark("word模板中書簽的名稱");
builder.StartTable();

//第一行第一列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第一列");

//第一行第二列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第二列");

//第一行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第三列");

builder.EndRow();

//第二行第一列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第一列");

//第二行第二列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第二列");

//第二行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第三列");

builder.EndRow();

builder.EndTable();

五、單元格合並

//將第一行第三列和第二行第三列進行縱向合並 並將文本顯示為"這是縱向合並列"
builder.MoveToBookmark("word模板中書簽的名稱");
builder.StartTable();

//第一行第一列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第一列");

//第一行第二列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第二列");

//第一行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.CellFormat.HorizontalMerge=Aspose.Words.Tables.CellMerge.None;
//設置縱向合並
builder.CellFormat.VerticalMerge=Aspose.Words.Tables.CellMerge.First;
builder.Write("這是縱向合並列");

builder.EndRow();

//第二行第一列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第一列");

//第二行第二列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第二列");

//第二行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.CellFormat.HorizontalMerge=Aspose.Words.Tables.CellMerge.None;
//設置縱向合並(與第一行第三列合並)
builder.CellFormat.VerticalMerge=Aspose.Words.Tables.CellMerge.Previous;

builder.EndRow();

builder.EndTable();

如果有第三行同時第三行的第三列也需要和第一行、第二行的第三列進行合並應該怎么處理?

//第三行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋體(中文正文)";
builder.CellFormat.Width = 100.0;
builder.CellFormat.HorizontalMerge=Aspose.Words.Tables.CellMerge.None;
//設置縱向合並(與第一行、第二行第三列合並)
builder.CellFormat.VerticalMerge=Aspose.Words.Tables.CellMerge.Previous;

橫向合並與縱向合並類似只是橫向合並需要設置HorizontalMerge屬性。

六、其他的一些屬性和方法

//插入段落
 builder.InsertParagraph();
//設置單元格左邊邊框的樣式和寬度(上、右、下類似)
 builder.CellFormat.Borders.Left.LineStyle = Aspose.Words.LineStyle.Single; 
builder.CellFormat.Borders.Left.LineWidth = 1.5;
//設置文字居中
 builder.ParagraphFormat.Alignment = Aspose.Words.ParagraphAlignment.Center;
//設置文字垂直居中
 builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;
//是否適應文本(此屬性為true如果文本長度大於單元格長度則文本會在單元格內自動換行。此屬性為false如果文本長度大於單元格長度則會將當前單元格撐大)
 builder.CellFormat.FitText = true;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM