一、創建Word文檔模板
- 分析需要導出的word文檔,將固定的內容和由程序生成的內容分開;
- 創建一個word(例如:Template.doc)文檔,將固定的內容按照一定的格式寫入當前文檔中;
- 打開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;