国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

NPOI 2.0導出word(docx格式)

2019-11-17 01:51:02
字體:
來源:轉載
供稿:網友

NPOI 2.0導出Word(docx格式)

大名鼎鼎的NPOI用來導出Excel的文章園子里面有很多,可是用來導出WORD文檔的文章大都含糊不清,最近剛好完成一個導出WORD文檔的需求,在此分享下。

NPOI里面認為word文檔的最基本的結構是段落,代表這個段落的類就是XWPFParagraph,使用這個類可以設置段落里面的字體、大小、以及是否加粗等。

代表整個文檔的的類XWPFDocument,是最外層的容器相當于一個word文檔的實例,代表表格的類XWPFTable,是較小級別的段落容器相當于一個表格的實例。

一個XWPFDocument可以添加多個XWPFTable和多個XWPFParagraph,一個XWPFTable可以添加多個XWPFParagraph

現在我們要創建一個有幾個段落和表格的word文檔,其中,表格里面要顯示帶格式的文字(微軟雅黑,小四),形如

首先,需要創建一個XWPFDocument doc = new XWPFDocument(),隨后用文檔實例doc創建段落1~段落n

 1            XWPFParagraph p0 = doc.CreateParagraph(); 2             p0.SetAlignment(ParagraphAlignment.LEFT); 3             XWPFRun r0 = p0.CreateRun(); 4             r0.SetFontFamily("宋體"); 5             r0.SetFontSize(18); 6             r0.SetBold(true); 7             r0.SetText("未登錄過學生的賬號密碼"); 8  9             XWPFParagraph p1 = doc.CreateParagraph();10             p1.SetAlignment(ParagraphAlignment.LEFT);11             XWPFRun r1 = p1.CreateRun();12             r1.SetFontFamily("宋體");13             r1.SetFontSize(10);14             r1.SetBold(true);15             r1.SetText("(備注:已登錄過的學生密碼不顯示)");16 17             XWPFParagraph p2 = doc.CreateParagraph();18             p2.SetAlignment(ParagraphAlignment.LEFT);19             XWPFRun r2 = p2.CreateRun();20             r2.SetFontFamily("宋體");21             r2.SetFontSize(10);22             r2.SetBold(true);23             r2.SetText("學校:XX一中");24 25             XWPFParagraph p3 = doc.CreateParagraph();26             p3.SetAlignment(ParagraphAlignment.LEFT);27             XWPFRun r3 = p3.CreateRun();28             r3.SetFontFamily("宋體");29             r3.SetFontSize(10);30             r3.SetBold(true);31             r3.SetText("班級:(7)");32 33             XWPFParagraph p4 = doc.CreateParagraph();34             p4.SetAlignment(ParagraphAlignment.LEFT);35             XWPFRun r4 = p4.CreateRun();36             r4.SetFontFamily("宋體");37             r4.SetFontSize(10);38             r4.SetBold(true);39             r4.SetText("班主任:ddd");40 41 42             XWPFParagraph p5 = doc.CreateParagraph();43             p5.SetAlignment(ParagraphAlignment.LEFT);44             XWPFRun r5 = p5.CreateRun();45             r5.SetFontFamily("宋體");46             r5.SetFontSize(10);47             r5.SetBold(true);48             r5.SetText("可以在此處添加備注:");

然后用doc創建個4行4列XWPFTable table = doc.CreateTable(4, 4)

接著很多人根據vs的點出來的方法或者是NPOI原作者tonyqus的教程http://tonyqus.sinaapp.com/archives/614,使用table的單元格的SetParagraph()方法直接設置構造好的段落就行了,但是,事實證明這樣做是不對的,這樣的話會使得構造出來的段落不光會顯示在table里面,而且還會顯示在其他地方。正確的方法應該是使用table單元格的AddParagraph()方法直接生成一個專屬于表格的段落。

 1                     XWPFParagraph pIO = table.GetRow(i).GetCell(0).AddParagraph(); 2                     XWPFRun rIO = pIO.CreateRun(); 3                     rIO.SetFontFamily("微軟雅黑"); 4                     rIO.SetFontSize(12); 5                     rIO.SetBold(true); 6                     rIO.SetText(i.ToString()); 7                      8  9                     XWPFParagraph pINo =table.GetRow(i).GetCell(1).AddParagraph();10                     XWPFRun rINo = pINo.CreateRun();11                     rINo.SetFontFamily("微軟雅黑");12                     rINo.SetFontSize(12);13                     rINo.SetBold(true);14                     rINo.SetText(notLoginStudents[i - 1].UserName);15 16 17                     XWPFParagraph pIMm = table.GetRow(i).GetCell(2).AddParagraph();18                     XWPFRun rIMm = pIMm.CreateRun();19                     rIMm.SetFontFamily("微軟雅黑");20                     rIMm.SetFontSize(12);21                     rIMm.SetBold(true);22                     rIMm.SetText(notLoginStudents[i - 1].PassWord);23                     24 25                     XWPFParagraph pIName = table.GetRow(i).GetCell(3).AddParagraph();26                     XWPFRun rIName = pIName.CreateRun();27                     rIName.SetFontFamily("微軟雅黑");28                     rIName.SetFontSize(12);29                     rIName.SetBold(true);30                     rIName.SetText(notLoginStudents[i - 1].StudentName);

隨后,把文檔寫入流doc.Write(new MemoryStream()),接著你想干神馬就都OK了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上林县| 武宣县| 梁平县| 大港区| 梁平县| 固安县| 油尖旺区| 博罗县| 商南县| 镇沅| 望都县| 东丽区| 阳山县| 嘉祥县| 扎囊县| 大足县| 常德市| 齐齐哈尔市| 清新县| 乌兰浩特市| 香港| 瑞丽市| 武义县| 嘉峪关市| 蓬莱市| 巴林左旗| 黑龙江省| 垦利县| 阿鲁科尔沁旗| 汝阳县| 桑植县| 宁陵县| 漠河县| 登封市| 辽阳市| 乐陵市| 潮安县| 余庆县| 波密县| 墨玉县| 河东区|