![XWPFDocument創(chuàng)建和讀取OfficeWord文檔基礎(chǔ)篇(一)_第1頁](http://file4.renrendoc.com/view/bec6f41fc5a8ac18ccfb4011207f3e96/bec6f41fc5a8ac18ccfb4011207f3e961.gif)
![XWPFDocument創(chuàng)建和讀取OfficeWord文檔基礎(chǔ)篇(一)_第2頁](http://file4.renrendoc.com/view/bec6f41fc5a8ac18ccfb4011207f3e96/bec6f41fc5a8ac18ccfb4011207f3e962.gif)
![XWPFDocument創(chuàng)建和讀取OfficeWord文檔基礎(chǔ)篇(一)_第3頁](http://file4.renrendoc.com/view/bec6f41fc5a8ac18ccfb4011207f3e96/bec6f41fc5a8ac18ccfb4011207f3e963.gif)
![XWPFDocument創(chuàng)建和讀取OfficeWord文檔基礎(chǔ)篇(一)_第4頁](http://file4.renrendoc.com/view/bec6f41fc5a8ac18ccfb4011207f3e96/bec6f41fc5a8ac18ccfb4011207f3e964.gif)
![XWPFDocument創(chuàng)建和讀取OfficeWord文檔基礎(chǔ)篇(一)_第5頁](http://file4.renrendoc.com/view/bec6f41fc5a8ac18ccfb4011207f3e96/bec6f41fc5a8ac18ccfb4011207f3e965.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
XWPFDocument創(chuàng)建和讀取OfficeWord?檔基礎(chǔ)篇(?)建議?家使?officeword來創(chuàng)建?檔。(wps和word結(jié)構(gòu)有些不?樣)IBodyElement-------------------迭代器(段落和表格)XWPFComment-------------------評論(個?理解應(yīng)該是批注)XWPFSDTXWPFFooter-------------------頁腳XWPFFootnotes-------------------腳注XWPFHeader-------------------頁眉XWPFHyperlink-------------------超鏈接XWPFNumbering-------------------編號(我也不知是啥...)XWPFParagraph-------------------段落XWPFPictureData-------------------圖?XWPFStyles-------------------樣式(設(shè)置多級標(biāo)題的時候?)XWPFTable-------------------表格1、正?段落?個?檔包含多個段落,?個段落包含多個Runs,?個Runs包含多個Run,Run是?檔的最?單元獲取所有段落:List<XWPFParagraph>paragraphs=word.getParagraphs();獲取?個段落中的所有Runs:List<XWPFRun>xwpfRuns=xwpfParagraph.getRuns();獲取?個Runs中的?個Run:XWPFRunrun=xwpfRuns.get(index);XWPFRun--代表具有相同屬性的?段?本2、正?表格?個?檔包含多個表格,?個表格包含多?,??包含多列(格),每?格的內(nèi)容相當(dāng)于?個完整的?檔獲取所有表格:List<XWPFTable>xwpfTables=doc.getTables();獲取?個表格中的所有?:List<XWPFTableRow>xwpfTableRows=xwpfTable.getRows();獲取??中的所有列:List<XWPFTableCell>xwpfTableCells=xwpfTableRow.getTableCells();獲取?格?的內(nèi)容:List<XWPFParagraph>paragraphs=xwpfTableCell.getParagraphs();之后和正?段落?樣注:1.表格的?格相當(dāng)于?個完整的docx?檔,只是沒有頁眉和頁腳。??可以有表格,使?xwpfTableCell.getTables()獲取,andsoon2.在poi?檔中段落和表格是完全分開的,如果在兩個段落中有?個表格,在poi中是沒辦法確定表格在段落中間的。(當(dāng)然除?你本來知道了,這句是廢話)。只有?檔的格式固定,才能正確的得到?檔的結(jié)構(gòu)個?理解:我不能確定表格所處的位置(第?個段落后?,還是第?個段落后?...)3、頁眉:?個?檔可以有多個頁眉,頁眉??可以包含段落和表格獲取?檔的頁眉:List<XWPFHeader>headerList=doc.getHeaderList();獲取頁眉?的所有段落:List<XWPFParagraph>paras=header.getParagraphs();獲取頁眉?的所有表格:List<XWPFTable>tables=header.getTables();之后就?樣了4、頁腳:頁腳和頁眉基本類似,可以獲取表?頁數(shù)的?標(biāo)?歸正傳-------?貨:1、通過XWPFDocument讀:段落+表格a、獲取?檔的所有段落InputStreamis=newFileInputStream("D:\\table.docx");XWPFDocumentdoc=newXWPFDocument(is);List<XWPFParagraph>paras=doc.getParagraphs();獲取段落內(nèi)容for(XWPFParagraphpara:paras){//當(dāng)前段落的屬性//CTPPrpr=para.getCTP().getPPr();System.out.println(para.getText());}b、獲取?檔中所有的表格List<XWPFTable>tables=doc.getTables();List<XWPFTableRow>rows;List<XWPFTableCell>cells;for(XWPFTabletable:tables){//表格屬性CTTblPrpr=table.getCTTbl().getTblPr();//獲取表格對應(yīng)的?rows=table.getRows();for(XWPFTableRowrow:rows){//獲取?對應(yīng)的單元格cells=row.getTableCells();for(XWPFTableCellcell:cells){System.out.println(cell.getText());;}}}2、XWPFDocument?成word直接new?個空的XWPFDocument,之后再往這個XWPFDocument??填充內(nèi)容,然后再把它寫?到對應(yīng)的輸出流中。新建?個?檔XWPFDocumentdoc=newXWPFDocument();//創(chuàng)建?個段落XWPFParagraphpara=doc.createParagraph();//?個XWPFRun代表具有相同屬性的?個區(qū)域:?段?本XWPFRunrun=para.createRun();run.setBold(true);//加粗run.setText("加粗的內(nèi)容");run=para.createRun();run.setColor("FF0000");run.setText("紅?的字。");OutputStreamos=newFileOutputStream("D:\\simpleWrite.docx");//把doc輸出到輸出流doc.write(os);this.close(os);新建?個表格//XWPFDocumentdoc=newXWPFDocument();//創(chuàng)建?個5?5列的表格XWPFTabletable=doc.createTable(5,5);//這?增加的列原本初始化創(chuàng)建的那5?在通過getTableCells()?法獲取時獲取不到,但通過row新增的就可以。//table.addNewCol();//給表格增加?列,變成6列table.createRow();//給表格新增??,變成6?List<XWPFTableRow>rows=table.getRows();//表格屬性CTTblPrtablePr=table.getCTTbl().addNewTblPr();//表格寬度CTTblWidthwidth=tablePr.addNewTblW();width.setW(BigInteger.valueOf(8000));XWPFTableRowrow;List<XWPFTableCell>cells;XWPFTableCellcell;introwSize=rows.size();intcellSize;for(inti=0;i<rowSize;i++){row=rows.get(i);//新增單元格row.addNewTableCell();//設(shè)置?的?度row.setHeight(500);//?屬性//CTTrPrrowPr=row.getCtRow().addNewTrPr();//這種?式是可以獲取到新增的cell的。//List<CTTc>list=row.getCtRow().getTcList();cells=row.getTableCells();cellSize=cells.size();for(intj=0;j<cellSize;j++){cell=cells.get(j);if((i+j)%2==0){//設(shè)置單元格的顏?cell.setColor("ff0000");//紅?}else{cell.setColor("0000ff");//藍?}//單元格屬性CTTcPrcellPr=cell.getCTTc().addNewTcPr();cellPr.addNewVAlign().setVal(STVerticalJc.CENTER);if(j==3){//設(shè)置寬度cellPr.addNewTcW().setW(BigInteger.valueOf(3000));}cell.setText(i+","+j);}}//?件不存在時會?動創(chuàng)建OutputStreamos=newFileOutputStream("D:\\table.docx");//寫??件doc.write(os);this.close(os);段落內(nèi)容替換/***替換段落??的變量*@parampara要替換的段落*@paramparams參數(shù)*/privatevoidreplaceInPara(XWPFParagraphpara,Map<String,Object>params){List<XWPFRun>runs;Matchermatcher;if(this.matcher(para.getParagraphText()).find()){runs=para.getRuns();for(inti=0;i<runs.size();i++){XWPFRunrun=runs.get(i);StringrunText=run.toString();matcher=this.matcher(runText);if(matcher.find()){while((matcher=this.matcher(runText)).find()){runText=matcher.replaceFirst(String.valueOf(params.get(matcher.group(1))));}//直接調(diào)?XWPFRun的setText()?法設(shè)置?本時,在底層會重新創(chuàng)建?個XWPFRun,把?本附加在當(dāng)前?本后?,//所以我們不能直接設(shè)值,需要先刪除當(dāng)前run,然后再???動插??個新的run。para.removeRun(i);para.insertNewRun(i).setText(runText);}}}}直接調(diào)?XWPFRun的setText()?法設(shè)置?本時,在底層會重新創(chuàng)建?個XWPFRun,把?本附加在當(dāng)前?本后?,所以我們不能直接設(shè)值,需要先刪除當(dāng)前run,然后再???動插??個新的run。//抽取worddocx?件中的圖?Stringpath="D://abc.docx";Filefile=newFile(path);try{FileInputStreamfis=newFileInputStream(file);XWPFDocumentdocument=newXWPFDocument(fis);XWPFWordExtractorxwpfWordExtractor=newXWPFWordExtractor(document);Stringtext=xwpfWordExtractor.getText();System.out.println(text);List<XWPFPictureData>picList=document.getAllPictures();for(XWPFPictureDatapic:picList){System.out.println(pic.getPictureType()+file.separator+pic.suggestFileExtension()+file.separator+pic.getFileName());byte[]bytev=pic.getData();FileOutputStreamfos=newFileOutputStream("D:\\abc\\docxImage\\"+pic.getFileName());fos.write(bytev);}fis.close();}catch(IOExceptione){e.printStackTrace();}}多級標(biāo)題結(jié)構(gòu)/***?定義樣式?式寫word,參考statckoverflow的源碼**@throwsIOException*/publicstaticvoidwriteSimpleDocxFile()throwsIOException{publicstaticvoidwriteSimpleDocxFile()throwsIOException{XWPFDocumentdocxDocument=newXWPFDocument();//?外?定義了?個名字,中?版的最好還是按照word給的標(biāo)題名來,否則級別上可能會亂addCustomHeadingStyle(docxDocument,"標(biāo)題1",1);addCustomHeadingStyle(docxDocument,"標(biāo)題2",2);//標(biāo)題1XWPFParagraphparagraph=docxDocument.createParagraph();XWPFRunrun=paragraph.createRun();run.setText("標(biāo)題1");paragraph.setStyle("標(biāo)題1");//標(biāo)題2XWPFParagraphparagraph2=docxDocument.createParagraph();XWPFRunrun2=paragraph2.createRun();run2.setText("標(biāo)題2");paragraph2.setStyle("標(biāo)題2");//正?XWPFParagraphparagraphX=docxDocument.createParagraph();XWPFRunrunX=paragraphX.createRun();runX.setText("正?");//word寫?到?件FileOutputStreamfos=newFileOutputStream("D:/myDoc2.docx");docxDocument.write(fos);fos.close();}/***增加?定義標(biāo)題樣式。這??的是stackoverflow的源碼**@paramdocxDocument?標(biāo)?檔*@paramstrStyleId樣式名稱*@paramheadingLevel樣式級別*/privatestaticvoidaddCustomHeadingStyle(XWPFDocumentdocxDocument,StringstrStyleId,intheadingLevel){CTStylectStyle=CTStyle.Factory.newInstance();ctStyle.setStyleId(strStyleId);CTStringstyleName=CTString.Factory.newInstance();styleName.setVal(strStyleId);ctStyle.set
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國生物基FDCA(2,5-呋喃二甲酸)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 聘用臨時工合同范本
- 錨桿勞務(wù)分包合同
- 塔吊司機勞動合同
- 小企業(yè)勞動合同
- 勞務(wù)合同報酬
- 小產(chǎn)權(quán)房房屋租賃合同
- 大貨車貨物運輸合同
- 知識產(chǎn)權(quán)合同條款分析
- 城區(qū)中心亮化維修工程采購合同
- 改革開放教育援藏的創(chuàng)新及其成效
- 第3課+中古時期的西歐(教學(xué)設(shè)計)-【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 山東省濟寧市2023年中考數(shù)學(xué)試題(附真題答案)
- 班組建設(shè)工作匯報
- 供應(yīng)鏈金融與供應(yīng)鏈融資模式
- 工程類工程公司介紹完整x
- 板帶生產(chǎn)工藝熱連軋帶鋼生產(chǎn)
- 關(guān)鍵工序特殊過程培訓(xùn)課件精
- 輪機備件的管理(船舶管理課件)
- 統(tǒng)編《道德與法治》三年級下冊教材分析
- 國際尿失禁咨詢委員會尿失禁問卷表
評論
0/150
提交評論