布衣王子

          Email:roose2008@gmail.com QQ:79212131

          Java 讀取 OpenOffice 文檔

          由于項目的需要,我們需要在Java程序讀取OpenOffice文檔,并對數據進行處理。本文介紹了如何使用ODF Toolkit去讀取OpenOffice SpreadSheet的內容。
          1. OpenOffice Spreedsheet 文檔
          假設我們需要讀取如下圖所示的OpenOffice Spreedsheet 文檔:

          上面的文檔也包含在本文的源代碼中。

          OpenOffice文檔其實是以XML格式存儲的,其中包含了文檔內容和格式控制等。
          如果使用unzip工具解壓縮,你會發現解壓縮后,一個OpenOffice文檔其實包含如下的內容:

          2. 下載ODF4j
          Odf4j 是用于讀取OpenOffice 文檔(ODF)的純Java的工具包。目前雖然還沒有正式發布,但是已經具備了處理OpenOffice文檔的基本功能。
          使用Odf4j,Java程序員可以非常容易地創建,修改OpenOffice 文檔。

          3. 使用ODF4j讀取OpenOffice文檔
          使用ODF4j讀取OpenOffice文檔包括兩個層次:Package Layer和Document Layer。
          • Package Layer
              在Package Layer,OpenOffice文檔里的各種資源是作為一個命名的資源來處理。在這個層次一般用于操作二進制文件,比如圖片等。
          • Document Layer
              在Document Layer,主要正對文檔的內容進行操作。在這個層次,文檔內容是作為層次結構被操作的,因為文檔的內容是以XML文件方式保存,所以可以非常方便的以 DOM方式來操作。下面的示例中,將以Document Layer來讀取一個OpenOffice Spreadsheet文檔。

          4.  讀取OpenOffice Spreadsheet文檔
          import org.openoffice.odf.OdfPackage;
          import org.openoffice.odf.OpenDocumentFactory;
          import org.openoffice.odf.spreadsheet.SpreadsheetDocument;
          import org.w3c.dom.Document;
          import org.w3c.dom.Element;
          import org.w3c.dom.NodeList;

          ......

          OdfPackage odfPackage;

          odfPackage = (SpreadsheetDocument) OpenDocumentFactory.load(path);

          Document doc = odfPackage.getDocument(OdfPackage.STREAMNAME_CONTENT);

          Element root = doc.getDocumentElement();

          ......
          Source code
          當獲得root Element后,我們就可以像讀取xml文件一樣讀取OpenOffice文檔中的內容。

          5. 程序運行結果
          下載本文的源代碼,進入NetBean Project的根目錄,然后運行:ant run。運行結果如下圖所示:


          ===相關下載===
          1. ODF4j: http://wiki.services.openoffice.org/wiki/Odf4j



          posted on 2008-06-20 10:25 草包書生 閱讀(556) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          常用鏈接

          相冊

          java的相關連接

          最新評論

          主站蜘蛛池模板: 绥滨县| 古丈县| 建德市| 娄底市| 隆化县| 方城县| 邯郸市| 临武县| 高邑县| 柘城县| 古田县| 威宁| 内丘县| 方正县| 曲沃县| 来安县| 威海市| 来宾市| 峡江县| 双牌县| 营口市| 红桥区| 民权县| 胶南市| 水城县| 吕梁市| 石门县| 微山县| 连南| 余姚市| 望奎县| 扎鲁特旗| 四会市| 亚东县| 张家港市| 青海省| 凤翔县| 德庆县| 贵港市| 积石山| 西宁市|