日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

發(fā)布時間:2025/6/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們知道,一般都導(dǎo)出的Word文檔或者Excel文檔,基本上分為兩類,一類是動態(tài)生成全部文檔的內(nèi)容方式,一種是基于固定模板化的內(nèi)容輸出,后者在很多場合用的比較多,這也是企業(yè)報表規(guī)范化的一個體現(xiàn)。

我的博客介紹過幾篇關(guān)于Aspose.Word控件和Aspose.Cell控件的使用操作,如下所示。

《使用Aspose.Cell控件實(shí)現(xiàn)Excel高難度報表的生成(一)》

《使用Aspose.Cell控件實(shí)現(xiàn)Excel高難度報表的生成(二)》

《使用Aspose.Cell控件實(shí)現(xiàn)Excel高難度報表的生成(三)》

《使用Aspose.Cell控件實(shí)現(xiàn)多個Excel文件的合并》

以及關(guān)于Word的操作的《利用Aspose.Word控件實(shí)現(xiàn)Word文檔的操作》

這些都是我本人的總結(jié),是實(shí)實(shí)在在的從項(xiàng)目中來,到博客中去的經(jīng)驗(yàn)總結(jié),本篇主要介紹在Web的模板化文檔輸出中,Aspose.Word控件和Aspose.Cell控件的使用操作。

1、Word模板化的文檔導(dǎo)出

模板化的輸出,首先是在預(yù)定義好固定的模板,然后綁定數(shù)據(jù)源或者替換相關(guān)的文字實(shí)現(xiàn)模板化文檔的導(dǎo)出操作。

在Aspose.Word的操作對象中,我們可以使用文本替換的方式實(shí)現(xiàn)模板內(nèi)容的修改,簡單的操作如下所示。

Document doc = new Document(MyDir + "Document.doc"); doc.Range.Replace("wuhuacong", "伍華聰", false, true);

也可以以書簽引用替換的方式實(shí)現(xiàn),首先要定義好相應(yīng)的標(biāo)簽引用,操作如下。

在一個Word文檔中某固定位置插入一個標(biāo)簽引用,在Word(2007、2010)的【插入】-【書簽】中插入指定位置的書簽引用,如下所示。

替換標(biāo)簽內(nèi)容的代碼如下所示。

Aspose.Words.Bookmark bookmark = doc.Range.Bookmarks["ACCUSER_SEX"];if (bookmark != null){bookmark.Text = "男";}

為了較好展示操作效果,我們先來固定一個Word的模板文檔,如下所示。

實(shí)現(xiàn)模板化的文檔導(dǎo)出,我這里結(jié)合兩種方式實(shí)現(xiàn)內(nèi)容的替換操作,一個是使用文字替換,一個是使用標(biāo)簽引用,兩部分的代碼如下所示。

protected void btnGenWord_Click(object sender, EventArgs e){Dictionary<string, string> dictSource = new Dictionary<string, string>();dictSource.Add("TIS_HANDLE_NO", "T0001");dictSource.Add("ACCUSE_INDUSTRY", "出租車");dictSource.Add("ACCUSER_NAME", "張三");string templateFile = Server.MapPath("./Templates/Advice.doc");Aspose.Words.Document doc = new Aspose.Words.Document(templateFile);//使用文本方式替換foreach (string name in dictSource.Keys){ doc.Range.Replace(name, dictSource[name], true, true);}#region 使用書簽替換模式Aspose.Words.Bookmark bookmark = doc.Range.Bookmarks["ACCUSER_SEX"];if (bookmark != null){bookmark.Text = "男";}bookmark = doc.Range.Bookmarks["ACCUSER_TEL"];if (bookmark != null){bookmark.Text = "1862029207*";} #endregiondoc.Save(Response, "testAdvice.doc", Aspose.Words.ContentDisposition.Attachment,Aspose.Words.Saving.SaveOptions.CreateSaveOptions(Aspose.Words.SaveFormat.Doc));}

基于Asp.NET的界面如下所示。

生成的模板化文檔如下所示,整個文檔是基于固定模板輸出,因此比較標(biāo)準(zhǔn)和統(tǒng)一化。

2、Aspose.Cell模板化的文檔導(dǎo)出

Aspose.Cell的模板化文檔也是類似,也有兩種方式可以操作,一種是替換文本,一種是綁定數(shù)據(jù)源的方式實(shí)現(xiàn),具體可以參考一下我前面的列出隨筆,對于Apsose.Cell來說,綁定數(shù)據(jù)源的功能非常強(qiáng)大。

綁定數(shù)據(jù)源是通過在模板中設(shè)置變量對象方式,變量對象是通過&=來引用,對象的屬性或者列名,通過如&=Customer.City方式引用,非常直觀方便。

這種方式的變量對象支持簡單對象,如下所示。

?

也支持復(fù)雜的集合對象,如下所示。

為了演示模板化的文檔導(dǎo)出,我這里設(shè)計(jì)了一個固定的Excel模板,通過兩種方式實(shí)現(xiàn)數(shù)據(jù)的替換,先定義Excel模板如下所示。

后臺綁定數(shù)據(jù)的代碼如下所示。

protected void btnGenExcel_Click(object sender, EventArgs e){Dictionary<string, string> dictSource = new Dictionary<string, string>();dictSource.Add("TIS_HANDLE_NO", "T0001");dictSource.Add("ACCUSE_INDUSTRY", "出租車");dictSource.Add("ACCUSER_NAME", "張三");string templateFile = Server.MapPath("./Templates/Advice.xls");WorkbookDesigner designer = new WorkbookDesigner();designer.Open(templateFile);Aspose.Cells.Worksheet worksheet = designer.Workbook.Worksheets[0];//使用文本替換foreach (string name in dictSource.Keys){ worksheet.Replace(name, dictSource[name]);}//使用綁定數(shù)據(jù)方式替換designer.SetDataSource("ACCUSER_SEX", "男");designer.SetDataSource("ACCUSER_TEL", "1862029207*");designer.Process();designer.Save("testAdvice.xls", SaveType.OpenInExcel, FileFormatType.Excel2003, Response);}

?

以上就是使用Aspose.Word控件和Aspose.Cell控件,實(shí)現(xiàn)Word文檔和Excel文檔的模板化導(dǎo)出的相關(guān)操作過程及代碼,希望對大家有幫助,也作為我的一個總結(jié),以后參考,呵呵,歡迎互相溝通研究。

轉(zhuǎn)載于:https://www.cnblogs.com/BrokenIce/p/5994973.html

總結(jié)

以上是生活随笔為你收集整理的利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。