1. 程式人生 > >解析xml格式的word文件(非jar包)-附程式碼

解析xml格式的word文件(非jar包)-附程式碼

1 背景

dom4j,Jdom,w3c dom解析xml文件時速度比較慢,因此選擇自己寫程式碼解析xml文件。

2 思路

首先,對xml檔案進行分析,熟悉標籤;

然後,切分文件為不同的塊。我們要對文件中的書籤進行替換,因此需要將文件切分為書籤塊和非書籤塊;

還有就是表格中行的迴圈,比如當前取出的資料是一個list,我們需要根據list的大小來生成表格中的行數,並對此表格中的書籤進行資料替換(如下圖),此時,需要將文件進切分為“迴圈的行塊”和非行塊。

除此之外,還有需刪除的行塊,表示該行需要刪除,一般用迴圈的行在合併單元格之後的表格設計上。

最後,對文件中切分好的塊進行文件構建。

3 編碼

3.1 塊切分器

(1)書籤切分器BookmarkCutter

(2)行切分器RowBookmarkCutter

(3)不需處理的書籤塊(skipCutter)

 (4)刪除切分器

(5)整個表格迴圈切分器

 3.2 構件xml文件

文件切分完成後,分別對不同的塊中的進行寫入,構件成一個完整的文件。

其中最主要的寫入是“書籤塊的寫入”,由於書籤塊分為“頭”“尾”“身體”,身體裡包含“文字塊”和“非文字”塊,書籤替換時只需將資料替換到第一個文字塊中即可,之後的文字塊忽略不計(因為替換的文字很難選擇文字塊中的某一塊的樣式,所以選擇取第一個文字塊的樣式)

附上程式碼下載程式碼

相關推薦

解析xml格式wordjar-程式碼

1 背景 dom4j,Jdom,w3c dom解析xml文件時速度比較慢,因此選擇自己寫程式碼解析xml文件。 2 思路 首先,對xml檔案進行分析,熟悉標籤; 然後,切分文件為不同的塊。我們要對文件中的書籤進行替換,因此需要將文件切分為書籤塊和非書籤塊; 還有就是

C#儀器數據解析-Worddoc、docx

new read ffi 數據文件 word 不同 軟件 情況下 如果 不少儀器數據報告輸出為Word格式文件,同Excel文件,Word文件doc和docx的存儲格式是不同的,相應的解析Word文件的方式也類似,主要有以下方式: 1.通過MS Word應用程序的DCOM

python合併多個word帶圖片等

文章目錄 安裝python3.6和pywin32包 執行程式碼 安裝python3.6和pywin32包 python官網下載python3.6版本,exe檔案直接安裝。 利用pip安裝pywin32包

POI 追加寫入word,POI如何寫入word親測有效,POI報錯Fail to save: an error occurs while saving the package

一、POI寫入word文件 首先參考W3Shool的教程(上述快速指南)的“Apache POI Word - 文件”一節,對於建立文件和寫入段落都有清晰的闡釋。我不再贅述。但是其寫入段落的方式每次都會覆蓋曾經寫入的內容。那麼經過我探索一番要這麼處理... 二、POI

java操作wordjacob,poi

專案需要,使用者從系統裡面下載word文件,該文件進行了填寫限制和加密,使用者只能在固定位置填寫內容。現要求系統驗證上傳的附件是否從系統上下載下來的。 思路:系統上面的文件都加入一個固定書籤,使用者上傳文件的時候,檢驗文件裡是否包含這個書籤。 採用jacob

使用poi生成word最全例子

1.說明 平時的專案中,我們可能需要做大量的報告。而這些報告中,有些是固定的格式,有些是需要自定義模板來生成。如果是固定的形式的,那麼相對而言是比較好做的,但要是根據模板來生成報告,比如:word、Excel或PDF。這樣的話,可能需要我們花點時間去解決了。這篇部落格主要是

安卓使用POI讀取及修改Word.docx格式

說明:上一篇文章使用poi對.doc格式的word文件進行了讀取和更改,但很多情況下還需要在word文件中插入圖片,這時就需要對.docx格式的word進行操作了。 1.製作文書 文書在原始碼中可以直接看到,簡單說明一下:文書有普通欄位、表格、特定位置的圖片,又在頁首頁尾

利用poi操作word針對docx格式

一:認識POI  Apache POI是一個開源的利用Java讀寫Excel、WORD等微軟OLE2元件文件的專案。最新的3.5版本有很多改進,加入了對採用OOXML格式的Office 2007支援,如xlsx、docx、pptx文件。  POI主頁:poi.apache.org/  二:POI3.5相關下載

安卓使用POI讀取及修改Word.doc格式

前言:如果你可愛的專案經理要求安卓端的你來操作word實現各種功能,不要猶豫,直接動之以情曉之以理,因為這本來就是java的poi,安卓雖然源自java,但對於java的很多東西是不支援的,已有的各種jar包也不方便更改,各種報錯會搞的你腦闊疼。所以編輯word文件這種事讓後

【Python圖像特征的音樂序列生成】解析ABC格式

技術分享 最新 class 技術 一個 color music blog logs ABC格式,是一個音樂標準,ABC Plus Project最新的標準是2.x。 ABC格式的音樂長成這樣: 1 X: 2 2 T:Abacus 3 % Nottingham Mus

C#儀器數據解析-Excelxls、xlsx

sheet 解析 工作站 row 問題 .get 壓縮 安裝 shee 不少儀器工作站可以將數據導出為Excel文件,包括97-2003版本的xls文件和2007+的xlsx文件。 采集Excel文件相比采集pdf文件更容易、程序更健壯,畢竟Excel中數據有明確的行、列

python-操作xml格式

remove true checked .get 模塊 class parse 增刪 roo xml文件的格式如下: <data> <country name="Liechtenstein"> <rank update

將頁面中表格數據導出excel格式vue

表示 webpack ade bpa upd 調用 clas 使用 目錄   近期由於項目需要,需要將頁面中的表格數據導出excel格式的文件,折騰了許久,在網上各種百度,雖然資料不少,但是大都不全,踩了許多坑,總算是皇天不負有心人,最後圓滿解決了。   1、安裝相關依賴

對於maven創建spark項目的pom.xml配置圖文詳解

mapr cati ID encoding pil tar error: 而是 releases  不多說,直接上幹貨! http://mvnrepository.com/   這裏,怎麽創建,見   這裏, 我重點說下spa

angularJs上傳form上傳

list amp success acs att ror tor 出了 end angular.js:13920 Broken interceptor detected: Config object not supplied in rejection: <input

解決下載ftp過程中,瀏覽器直接解析txt,png等的問題

filename map 需要 etc home 3.0.0 var att esp 搭建了一個ftp服務器,供用戶進行上傳下載,在下載過程中發現,一些文件,例如txt,jpg,png,pdf等直接被瀏覽器解析了。在瀏覽器中顯示其內容,沒有下載。 下面通過網上查詢得到一些解

Servlet | 訪問不同格式PDF、doc

ssr post 格式 tdi study ted sdn 類型 bsp 核心代碼 //設置響應內容類型為PDF類型 response.setContentType("application/pdf"); request.ge

pdf、caj轉換成word最新最有效的方法

  pdf或caj文件轉換如何為word文件,相信這個問題一直纏繞著很多人。當然也有很多的方法經驗,小編也去看過了,不過那些方法不是收費就是亂碼,根本不能滿足廣大群眾。下面小編就為大家分享一個最新最有效的辦法。希望能夠幫助到更多的人。 工具/原料 CAJ

Java Web 生成Wordfreemarker方式

首先在pom檔案中加入下面這個依賴(不是Maven專案的話,把jar包匯入專案即可) <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</ar

使用Freemarker匯出Word包含圖片程式碼實現及總結

本篇是關於利用FreeMarker匯出Word的實現步驟。採用FreeMarker非常的靈活,能夠按照自己指定的樣式設定並輸出內容,操作簡單方便,程式碼實現也容易。 下面是實現的效果圖: 下面是實現步驟: 1.新增FreeMarker需要的jar包(這裡用的是2.3.28版本,從網上的maven倉庫