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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 控制word,Android使用POI进行Word操作(一)

發布時間:2024/9/27 Android 200 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 控制word,Android使用POI进行Word操作(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

操作步驟

步驟一:引用相關POI庫

步驟二:創建POI中的word文件對象

步驟三:調用word文件對象的方法對文件進行操作

步驟一:引用相關的POI庫

吐槽一下,這一步是最坑的

本人嘗試了很多版本組合,最新的版本提示class重復引用。老的版本又有存在圖片插入后損壞文件。本人把能用的放在后面

加載方式

效果

通過gradle引用3.14poi

使用javatest能夠通過,但在編譯apk時提示重復類

加載最新的5.1poi包

提示無法找到一些java類

加載3.8的poi包及java包

添加圖片時,導致docx文件異常

通過gradle混合加載版本

能夠使用

錯誤引用1-生成app提示類重復

implementation 'org.apache.poi:poi-ooxml:3.14'

implementation 'org.apache.poi:poi-excelant:3.14'

implementation 'org.apache.poi:poi-examples:3.14'

implementation 'org.apache.xmlbeans:xmlbeans:2.6.0'

類重復導入錯誤

錯誤引用2-添加圖片時doc錯誤

目前采用直接加載jar包的方式,引用庫加載文件如下:

implementation files('libs/poi-3.8-20120326.jar')

implementation files('libs/poi-ooxml-3.8-20120326.jar')

implementation files('libs/poi-ooxml-schemas-3.8-20120326.jar')

implementation files('libs/xmlbeans-2.3.0.jar')

implementation files('libs/commons-logging-1.1.jar')

implementation files('libs/dom4j-1.6.1.jar')

implementation files('libs/stax-api-1.0.1.jar')

正確引用-混合版本加載

implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '3.17'

implementation group: 'org.apache.xmlbeans', name: 'xmlbeans', version: '3.1.0'

implementation 'javax.xml.stream:stax-api:1.0'

implementation 'com.fasterxml:aalto-xml:1.2.2'

步驟二:創建POI對應的Document對象

首先區別你要加載的word后綴,是.doc還是.docx,因為這兩個所創建的對象不一樣,如果不對號入座則會報錯

org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]

文件后綴

創建對象

doc

HWPFDocument

docx

XWPFDocument

由于doc是2003年的word版本,此處暫時略過。主要使用docx進行作業

步驟三:文件操作

操作類結構說明

獲取主要信息

讀取字段信息

// 段落,一般只文字內容,圖片表格等其他字符,會作為空字符

List paragraphs = doc.getParagraphs();

// 表格,整文檔中的所有表格

List tables = doc.getTables();

// 圖片,獲取的都是byte[]

List allPictures = doc.getAllPictures();

// 頁眉,只能獲取不同內容的頁眉

List headerList = doc.getHeaderList();

// 頁腳,注意自動生成的編號不會被獲取到,只能獲取不同類型的頁腳

List footerList = doc.getFooterList();

編輯文檔內容(覆蓋和添加)

注意使用POI的修改操作比較繁瑣,建議直接準備一個空文件進行填充

編輯和修改都最好不要對源文件進行修改,而是在修改后通過一個輸出流程,將修改后的文件輸出

默認所有的操作,最后都有調用 doc.write(out);

(一) 文字修改

操作步驟

遍歷所有的XWPFParagraph,并查找其中是否有自己需要修改的內容

遍歷該XWPFParagraph中的XWPFRun,調用toString()方法查看是否為需要修改的內容

使用run.setText("修改內容", 0)方法修改

List paragraphs = doc.getParagraphs();

for (int i = 0; i < paragraphs.size(); i++) {

XWPFParagraph para = paragraphs.get(i);

String text = para.getText();

if (!TextUtils.isEmpty(text)) {

index = text.indexOf(GOAL);

if (index != -1) {

List runs = para.getRuns();

for (XWPFRun run : runs) {

if (run.toString().equals("GOAL")) {

run.setText("修改內容", 0);

}

}

}

}

}

注意:

一定要添加第二個參數0,否則會變成插入操作

需要查找的內容不要增加特殊符號,特殊符號會被識別為單獨的XWPFRun對象

(二) 表格修改

操作步驟

確定需要處理的表格是第幾個

根據確定需要編輯的數據在第幾行,第幾列后,通過XWPFTable->XWPFTableRow->CTRow->XWPFTableCell

在獲取到XWPFTableCell后調用

//表格

List tables = doc.getTables();

XWPFTable table = tables.get(0);

table.getRow(0).getCell(1).setText("LJJ");

table.getRow(1).getCell(1).setText("29");

table.getRow(2).getCell(1).setText("地球");

注意:

若擔心異常退出,可以做一些長度限制,通過table.getRows();,然后每一行的row.getCtRow()sizeOfTcArray();判斷列數

(三) 圖片插入

此處默認在最后插入圖片,插入圖片的方式是通過輸入流的方式插入

XWPFRun run = doc.createParagraph().createRun();

FileInputStream picIn = new FileInputStream(new File(picPath));

run.addPicture(picIn, XWPFDocument.PICTURE_TYPE_PNG, "插入圖片", Units.toEMU(256), Units.toEMU(256));

FileUtils.close(picIn);

注意:

插入圖片打開word出現錯誤,則需要升級poi版本。目前可以使用的我已經上傳在最上面的下載地址了

插入圖片的寬和高,一定要使用Units.toEMU方法,并傳入想要顯示的寬和高。直接傳入寬和高無法顯示

效果圖

測試過程

原始文檔

輸出文檔

總結

以上是生活随笔為你收集整理的android 控制word,Android使用POI进行Word操作(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲第一色在线 | 久久国产福利一区 | 天天操天天插天天干 | 岛国av一区 | 久久久久久久伊人 | 国产精品36p | 久久久夜色精品亚洲 | 91免费观看入口 | 一区二区三区日本视频 | 97视频免费 | 手机看片1024久久 | 波多野结衣一级 | 污网在线观看 | 欧美日韩中文国产 | 成 人 黄 色 片 在线播放 | 涩涩网站在线看 | 亚洲欧美日韩在线一区 | 麻豆射区 | 老司机精品视频在线 | 午夜视频在线观看视频 | 五月天堂网 | 亚洲热在线 | 在线观看av日韩 | 欧美交 | 毛片亚洲av无码精品国产午夜 | 国产精品久久精品 | 国产wwwxxx| 亚洲男女视频 | 激情深爱五月 | 精品人妻人人做人人爽 | 精品日韩欧美 | 前任攻略在线观看免费完整版 | 日韩色资源 | 男女扒开双腿猛进入爽爽免费 | 91精品国产综合久久久蜜臀九色 | 五月婷婷av | 伊人999 | 欧美性爱精品在线 | 日本sm调教—视频|vk | 国产在线精品观看 | 五月av在线 | 人妻无码一区二区三区久久99 | 亚洲欧美一区二区三区四区 | 超碰av男人的天堂 | 99热这里精品 | 奇米一区二区三区 | 久久精品a | 亚洲国产精品成人va在线观看 | 亚洲aa视频 | 久久久久久久女国产乱让韩 | 久久亚洲熟女cc98cm | 久久亚洲影视 | 视频福利在线观看 | 一区二区不卡av | 亚洲欧洲自拍偷拍 | 最新日韩在线视频 | cao在线| 欧美特级毛片 | 91热精品| 99久久99久久精品国产片 | xxxx精品| 国产亚洲制服 | 337p色噜噜 | 国产十区 | 日产久久视频 | 久久久91 | 天堂av网在线 | 中文字幕码精品视频网站 | 色xxxxx| 91视频免费入口 | 女人18毛片水真多18精品 | 伊人资源 | 葵司免费一区二区三区四区五区 | 中文字幕欲求不满 | 亚洲人xxx日本人18 | 国产精品欧美一区二区三区 | 欧美日韩国产精品一区 | 日本网站在线看 | 猎艳山村丰满少妇 | 爱草在线视频 | 一区二区三区免费看视频 | 亚洲成人免费 | a天堂在线 | 日韩美女中文字幕 | 免费看60分钟黄视频 | 欧美日韩一区二区三区国产精品成人 | 欧美极品在线观看 | 国产女人精品视频 | 欧美专区在线视频 | 99re国产 | 国产对白videos麻豆高潮 | 女生扒开腿让男生操 | 风间由美在线观看 | 亚洲乱码一区二区三区 | 日韩啊v | 91网页在线观看 | 91热热| 国产区精品在线观看 | 魔女鞋交玉足榨精调教 |