中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

C#使用NPOI生成Word文檔的方法-創(chuàng)新互聯(lián)

這篇文章主要介紹了C#使用NPOI生成Word文檔的方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)服務(wù)項目包括黑龍江網(wǎng)站建設(shè)、黑龍江網(wǎng)站制作、黑龍江網(wǎng)頁制作以及黑龍江網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,黑龍江網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到黑龍江省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

VS2017、右鍵解決方案,管理NuGet程序包,搜索并為項目安裝NPOI程序包,并引用:
using NPOI.XWPF.UserModel;
本編使用NPOI版本為2.3.0
下面進入正題··
一、    獲取模板(XWPFDocument doc)
使用模板,首先獲取模板,然后把獲取的模板實例化為NPOI的文檔對象進行編輯操作:
using (FileStream stream = File.OpenRead(“模板文件地址”)){
XWPFDocument doc = new XWPFDocument(stream);
//處理doc,代碼控制編輯文檔。
}
處理doc后,生成新的文件,寫入doc ,生成word完成。
FileStream file = new FileStream(生成文件路徑+文件名, FileMode.Create, FileAccess.Write);
doc.Write(file);
file.Close();
doc就是我們獲取到的模板的所有內(nèi)容。
還有一點本編使用模板均為docx后綴文件,doc修改docx讀取報錯,需要另存為doxc文檔。
二、    文本處理(XWPFParagraph para)
doc.Paragraphs  獲取到文檔里的所有的段落對象;
para.ParagraphText  獲取段落的文本數(shù)據(jù);
para.ReplaceText(要被替換的文本,替換文本)  替換段落的文本(模板能實現(xiàn)的關(guān)鍵)

XWPFParagraph的官方參考文檔

三、    表格處理(XWPFTable table)
doc.Tables      獲取文檔里的所有的表格對象;
這里有必要多一嘴,doc.Tables獲取的只是Word中最外層的表格,不包含嵌套內(nèi)層的。
獲取嵌套單元格可使用cell.Tables;
(一)   表格行處理(XWPFTableRow row)
row.Rows        獲取表格所有行;
(二)   表格單元格處理(XWPFTableCell cell)
row.GetTableICells()   ;獲取表格行的所有單元格;
獲取到單元格之后就可以獲取單元格里的文本段落(Paragraphs)并且進行文本替換
(三)   水平合并行單元格

CT_Tc cttcofRowThird = cell.GetCTTc();
CT_TcPr ctProfRowThird = cttcofRowThird.AddNewTcPr();
ctProfRowThird.gridSpan = new CT_DecimalNumber();
ctProfRowThird.gridSpan.val = num.ToString();//合并num列

(四)   垂直合并列單元格

List<XWPFTableRow> rows所有要合并的行的XWPFTableRow對象集合。

XWPFTableCell cellFirstofThird = 第一行要合并的單元格對象;
CT_Tc cttcFirstofThird = cellFirstofThird.GetCTTc();
CT_TcPr ctPrFirstofThird = cttcFirstofThird.AddNewTcPr();
ctPrFirstofThird.AddNewVMerge().val = ST_Merge.restart;//開始合并行
ctPrFirstofThird.AddNewVAlign().val = ST_VerticalJc.center;//垂直
cttcFirstofThird.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
for (int i = 1; i < rows.Count; i++)
{
    XWPFTableCell cellfirstofRow = 第i行要合并的單元格對象;
    CT_Tc cttcfirstofRow = cellfirstofRow.GetCTTc();
    CT_TcPr ctPrfirstofRow = cttcfirstofRow.AddNewTcPr();
    ctPrfirstofRow.AddNewVMerge().val = ST_Merge.@continue;//繼續(xù)合并行
    ctPrfirstofRow.AddNewVAlign().val = ST_VerticalJc.center;//垂直
}

四、    圖片處理
2.3.0版本的NPOI的圖片插入沒有集成xml文件的修改所以需要手寫代碼編入(當(dāng)然,我是拷過來的)。

using (FileStream fsImg = new FileStream(圖片路徑, FileMode.Open, FileAccess.Read, FileShare.None))
{
var picID = doc.AddPictureData(fsImg, (int)NPOI.XWPF.UserModel.PictureType.JPEG);
string picXml = ""
+ "      <pic:pic xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">"
                    + "         <pic:nvPicPr>" + "            <pic:cNvPr id=\""
                    + "0"
                    + "\" name=\"Generated\"/>"
                    + "            <pic:cNvPicPr/>"
                    + "         </pic:nvPicPr>"
                    + "         <pic:blipFill>"
                    + "            <a:blip r:embed=\""
                    + id
                    + "\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"/>"
                    + "            <a:stretch>"
                    + "               <a:fillRect/>"
                    + "            </a:stretch>"
                    + "         </pic:blipFill>"
                    + "         <pic:spPr>"
                    + "            <a:xfrm>"
                    + "               <a:off x=\"0\" y=\"0\"/>"
                    + "               <a:ext cx=\""
                    + width
                    + "\" cy=\""
                    + height
                    + "\"/>"
                    + "            </a:xfrm>"
                    + "            <a:prstGeom prst=\"rect\">"
                    + "               <a:avLst/>"
                    + "            </a:prstGeom>"
                    + "         </pic:spPr>"
                    + "      </pic:pic>";
                XWPFParagraph par = cell.AddParagraph();//創(chuàng)建段落對象(可以在doc加也可在cell加)
                par.Alignment = ParagraphAlignment.CENTER;//居中
                XWPFRun run = par.CreateRun();
                CT_Inline inline = run.GetCTR().AddNewDrawing().AddNewInline();
                inline.graphic = new CT_GraphicalObject
                {
                    graphicData = new CT_GraphicalObjectData
                    {
                        uri = "http://schemas.openxmlformats.org/drawingml/2006/picture"
                    }
                };
                try
                {
                    inline.graphic.graphicData.AddPicElement(picXml);
                }
                catch (XmlException xe)
                {
                    throw xe;
                }
                NPOI.OpenXmlFormats.Dml.WordProcessing.CT_PositiveSize2D extent = inline.AddNewExtent();
                extent.cx = width;
                extent.cy = height;
                NPOI.OpenXmlFormats.Dml.WordProcessing.CT_NonVisualDrawingProps docPr = inline.AddNewDocPr();
                docPr.id = 1;
                docPr.name = "Image" + id;
}

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C#使用NPOI生成Word文檔的方法”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標(biāo)題:C#使用NPOI生成Word文檔的方法-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://www.rwnh.cn/article6/cegdig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計網(wǎng)站營銷、網(wǎng)站內(nèi)鏈ChatGPT、電子商務(wù)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
阿拉善右旗| 凯里市| 社旗县| 华阴市| 临潭县| 砀山县| 喀喇| 荔浦县| 镇远县| 桦川县| 兴文县| 瑞金市| 乌兰浩特市| 余江县| 大厂| 丰台区| 舒兰市| 马鞍山市| 托里县| 监利县| 商水县| 财经| 务川| 富平县| 永仁县| 措勤县| 波密县| 屏南县| 印江| 石景山区| 丰都县| 瓮安县| 彭阳县| 沾化县| 利津县| 策勒县| 永安市| 和静县| 涪陵区| 宝兴县| 阿坝|