.Net使用Aspose.Words生成Word文檔


一.前言

  想要按照模板來將數據導出到Word文檔,可以使用插件Aspose.Words。這個插件可以用於Word文檔的生成、修改,而不需要在環境中安裝Word軟件。

二.安裝

  安裝該插件包。在新版本中,需要在啟動程序中執行注冊碼,否則生成的Word文檔會有水印。

new Aspose.Words.License().SetLicense(new MemoryStream(Convert.FromBase64String("PExpY2Vuc2U+CiAgPERhdGE+CiAgICA8TGljZW5zZWRUbz5TdXpob3UgQXVuYm94IFNvZnR3YXJlIENvLiwgTHRkLjwvTGljZW5zZWRUbz4KICAgIDxFbWFpbFRvPnNhbGVzQGF1bnRlYy5jb208L0VtYWlsVG8+CiAgICA8TGljZW5zZVR5cGU+RGV2ZWxvcGVyIE9FTTwvTGljZW5zZVR5cGU+CiAgICA8TGljZW5zZU5vdGU+TGltaXRlZCB0byAxIGRldmVsb3BlciwgdW5saW1pdGVkIHBoeXNpY2FsIGxvY2F0aW9uczwvTGljZW5zZU5vdGU+CiAgICA8T3JkZXJJRD4yMDA2MDIwMTI2MzM8L09yZGVySUQ+CiAgICA8VXNlcklEPjEzNDk3NjAwNjwvVXNlcklEPgogICAgPE9FTT5UaGlzIGlzIGEgcmVkaXN0cmlidXRhYmxlIGxpY2Vuc2U8L09FTT4KICAgIDxQcm9kdWN0cz4KICAgICAgPFByb2R1Y3Q+QXNwb3NlLlRvdGFsIGZvciAuTkVUPC9Qcm9kdWN0PgogICAgPC9Qcm9kdWN0cz4KICAgIDxFZGl0aW9uVHlwZT5FbnRlcnByaXNlPC9FZGl0aW9uVHlwZT4KICAgIDxTZXJpYWxOdW1iZXI+OTM2ZTVmZDEtODY2Mi00YWJmLTk1YmQtYzhkYzBmNTNhZmE2PC9TZXJpYWxOdW1iZXI+CiAgICA8U3Vic2NyaXB0aW9uRXhwaXJ5PjIwMjEwODI3PC9TdWJzY3JpcHRpb25FeHBpcnk+CiAgICA8TGljZW5zZVZlcnNpb24+My4wPC9MaWNlbnNlVmVyc2lvbj4KICAgIDxMaWNlbnNlSW5zdHJ1Y3Rpb25zPmh0dHBzOi8vcHVyY2hhc2UuYXNwb3NlLmNvbS9wb2xpY2llcy91c2UtbGljZW5zZTwvTGljZW5zZUluc3RydWN0aW9ucz4KICA8L0RhdGE+CiAgPFNpZ25hdHVyZT5wSkpjQndRdnYxV1NxZ1kyOHFJYUFKSysvTFFVWWRrQ2x5THE2RUNLU0xDQ3dMNkEwMkJFTnh5L3JzQ1V3UExXbjV2bTl0TDRQRXE1aFAzY2s0WnhEejFiK1JIWTBuQkh1SEhBY01TL1BSeEJES0NGbWg1QVFZRTlrT0FxSzM5NVBSWmJRSGowOUNGTElVUzBMdnRmVkp5cUhjblJvU3dPQnVqT1oyeDc4WFE9PC9TaWduYXR1cmU+CjwvTGljZW5zZT4=")));

 三.使用

  Document對象實例化時傳入模板路徑參數,得到該模板文件的對象doc。使用Save方法,可以將其保存到另外一個路徑下。

string filePath = Server.MapPath("~/模板xxx.doc");//路徑
string savefile = Server.MapPath("~/生成xxx.doc");
Document doc = new Document(filePath); //載入模板
//......在這里對doc進行操作后,最后才生成work文檔。操作如下列舉
doc.Save(savefile);

  可以通過Word文檔標簽,在模板上對應位置進行賦值。(Word文檔怎么使用書簽,可以上網查找資料)

//判斷有無書簽
if (doc.Range.Bookmarks.Count > 0)
{
    //賦值時,書簽一定需要存在,否則報錯
    doc.Range.Bookmarks["xxx書簽"].Text = "xxx";
}

  在Word文檔中生成table表單。

//創建builder對象,在doc上。
DocumentBuilder builder = new DocumentBuilder(doc);
//移動到doc上對應的書簽位置
builder.MoveToBookmark("xxx");
//樣式
builder.Font.Bold = true;
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
//寫標題
builder.Writeln("xxx");

//默認就是第一行,從左往右創建一個單元格
CreateCell(builder, "xx");//方法在下面
CreateCell(builder, "xx");
CreateCell(builder, "xx");
//結束這一行。如果下面創建單元格,默認開啟下一行
builder.EndRow();

//重復插入單元格,結束一行的操作,就可以實現table表格。
public static void CreateCell(DocumentBuilder builder, string content)
{
    //插入單元格,直到下一個單元格插入或行結束,builder都是對該單元格進行操作
    builder.InsertCell();
    builder.CellFormat.Borders.LineStyle = LineStyle.Single;
    builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
    builder.CellFormat.Width = 10;
    builder.Font.Size = 10;
    builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
    builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
    builder.CellFormat.RightPadding = 0;
    builder.CellFormat.LeftPadding = 0;
    builder.CellFormat.HorizontalMerge = CellMerge.First;
    builder.CellFormat.VerticalMerge = CellMerge.None;
    builder.Write(content);
}

 


免責聲明!

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



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