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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

POI解析docx与doc文档中的难点归纳

發布時間:2023/12/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POI解析docx与doc文档中的难点归纳 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近需求是寫一個將docx和doc解析后轉換為json格式輸入到json臨時文件中的功能,然后前端讀取json文件去渲染做到和文檔內容一致,在這里歸納下難點,以及國內網站基本沒有相關demo的點。

先說下docx和doc的區別吧,區別實際上就是一個好用而另一個反人類,現在創建一個新的文檔,office都不會給你選擇,直接默認docx,除非你另存為doc或者直接修改后綴,這樣的原因是doc這種二進制存儲的玩意過于反人類:
docx文件修改后綴為zip后解壓,你可以在這個文件夾里面看到所有文檔內容信息,樣式,圖片之類的,doc的話相同操作你啥都看不到。這樣就導致你使用poi解析docx和doc的難易程度完全差得十萬八千里。

另外poi用來解析doc的hwpf包也寫的很亂,對比poi用來解析docx的xwpf包來說,xwpf包看底層會有方法說明,而且命名方式可以讓你就算沒有方法說明,大致也很容易看得懂這個方法用來干什么的,但是hwpf包就不一樣,一堆枚舉,方法也很凌亂,阿帕奇官網對于方法的說明幾乎沒有,再加上國內使用poi的本來就少,大多直接用阿里的poi-tl之類的,而且用poi解析文檔的更是少之又少,大多資料都是解析excel的,少之又少里面大多又是解析docx的,doc的又是又是少之又少。希望自己接下來的一些補充能夠在國內論壇里貢獻一點資料吧(雖然很冷門,但是希望以后有和我做一樣事情的程序員能少走點彎路)

最后因為我應屆入職不久,代碼可能比較稚嫩,希望能給你帶來幫助,輕噴。

docx,doc的解析難點

首先我覺得比較偏門資料比較少的有五個:

一個是解析公式,我所做的需求是將公式轉換為latex字符串儲存,就是比如將下圖這種轉換為一個字符串:
x=\frac{-b\pm \sqrt{{b}^{2}-4ac}}{2a}

二是遍歷docx文檔。單獨解析不同的模塊,如解析出文檔里所有的圖片,解析文檔中所有表格,解析文檔中的所有的文本,這很簡單,docx這些方法csdn或者博客園都能找到。但是,這些解析出來的數據結構是沒有定位的,你不知道圖片與段落之間的關系,表格與段落之間的關系,題注與圖片的位置關系。所以你必須要從頭到尾去遍歷,才能夠知道這些之間的位置關系。

三是遍歷doc文檔,相信我,這個比docx的遍歷冷門的多,自己不斷嘗試的方法摸索出來的,可能還沒達到普遍性,但是基本能泛用。

四是將docx和doc文檔中的復雜表格轉換為html字符串,這個也很冷門,網上資料大多是整個文檔全轉為html,或者是讀取簡單地,方方正正,n*m的表格,沒有單獨處理復雜表格轉換為html的的。
主要思路是解析后通過自己寫的方法拼接為html,docx的表格轉html字符串是在網上找的,poi解析docx用的xwpf包里面對于表格有專門的類讀取它的信息,能夠得到很完善的表格信息,所以拼接簡單,poi解析doc所用的hwpf包解析doc中的表格,沒有這些東西,所以很難讀取解析復雜表格后拼接為html。這個后面會單獨說。

五是編號列表,docx的編號列表網上能找到,但是也很冷門那種,太難找了,而doc的網上根本就沒有,方法是靠自己看hwpf底層加上不斷測試以及閱讀office官網給的一些doc文檔信息寫出來的。

這里要說一下:docx文檔和doc文檔實際上是沒有存儲編號的文本的。

查了下相關資料,說列表段落的編號文本不是硬編碼,所以你去文檔底層里面是找不到具體的文本內容。xwpf讀取docx中列表段落的編號的文本內容是在csdn上找到的,而doc是自己摸索加上office官方給的文檔結合推導出來的方法,但是方式都是大同小異,都不是通過poi直接讀出來的,而是通過poi獲取相關信息,然后在方法里面匹配后進行拼接,從而獲取對應的列表段落的編號文本內容,類似于下列圖中所示的編號內容:如1. 1) a) 等。


這些都是比較冷門的讀取,至少我在做的時候很多都找不到,stack over flow上去詢問也很多都沒解決,有的是靠自己測試得出的結果。

有時間會將代碼上傳github并且分享相關jar包,jar包的功能是給要解析的docx文件路徑或doc文件路徑,以及輸出臨時文件位置(本來是只要給文件路徑,自動生成一個temp文件夾在jar包相同的目錄下,然后在temp文件夾下生成相應的解析后的json臨時文件,但是老大不讓這么做),生成的json文件是順序從頭到尾的,前端解析后渲染就可以復原這個文檔內容,文本樣式什么都有。

總結

以上是生活随笔為你收集整理的POI解析docx与doc文档中的难点归纳的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 精品一区二区三区四区视频 | 巨乳美女被爆操 | 爱欲av| 毛片a级片 | 国产肥老妇视频 | 精品国产乱码久久久久久鸭王1 | 天天干天天干天天 | v天堂中文在线 | 国产在线欧美在线 | 欧美丰满少妇 | 先锋影音资源av | 欧美日韩亚洲二区 | 日韩网站免费 | 亚洲精品日韩精品 | 欧美一区二区三区免费 | 亚洲+小说+欧美+激情+另类 | 久操热久操 | 国内特级毛片 | 啪啪导航| 欧美成人免费在线观看视频 | 男女裸体无遮挡做爰 | 欧美亚洲天堂 | 一区二区三区精彩视频 | 一区二区三区av在线 | 深夜在线网站 | 欧美另类国产 | 国产盗摄在线观看 | 久久网免费视频 | 91成人在线看 | 国产精品18久久久久久无码 | 亚洲国产剧情在线观看 | 精品少妇人妻AV无码专区在线 | 久久精品导航 | 亚洲美女自拍视频 | 欧美性受xxxxxx黑人xyx性爽 | 乱视频在线观看 | 免费涩涩 | 在线日韩三级 | 日批的视频 | 日本黄色免费网址 | 日韩一二三四五区 | 无遮挡aaaaa大片免费看 | 日韩久久毛片 | 无法忍受在线观看 | 加勒比在线免费视频 | 欧美午夜精品一区二区三区电影 | 麻豆亚洲| 国产露脸国语对白在线 | 午夜视频黄色 | 久久精品中文字幕 | 最近的中文字幕 | 日本污视频在线观看 | 国产成年人免费视频 | 丰满人妻av一区二区三区 | 九草在线视频 | 日本黄色一区二区 | 密桃成熟时在线观看 | 久久综合一区二区三区 | 亚洲精品久久久久久久蜜桃 | 日韩午夜毛片 | 午夜综合| 亚洲成人第一区 | 最新色站 | 性开放网站 | 欧美一区二区区 | 久久婷婷影院 | 人成精品| 爱爱激情网 | 真人bbbbbbbbb毛片 | 看全黄大色黄大片 | 男女爱爱网站 | 在线观看黄色免费网站 | 精品无码久久久久国产 | 美女国产视频 | 成人爱爱免费视频 | 亚洲综合色成人 | 成人在线免费观看网站 | 97人人精品 | 五月天综合视频 | 亚洲国产精品狼友在线观看 | av一本在线 | 亚洲福利小视频 | 成人激情在线视频 | 亚洲AV成人无码一二三区在线 | 老女人性生活视频 | 精精国产xxxx视频在线 | 五月天激情影院 | 日韩在线视频网 | 欧美日韩一区二区三区视频 | 好吊色一区二区三区 | 欧美激情成人网 | 97人人澡人人爽人人模亚洲 | 亚洲一区免费视频 | 999免费视频 | 在线视频观看免费 | 动漫女生光屁股 | 成人av免费在线看 | 狠狠躁夜夜 | 成人免费在线播放视频 |