布衣王子

          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 草包書生 閱讀(554) 評論(0)  編輯  收藏


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


          網站導航:
           

          導航

          常用鏈接

          相冊

          java的相關連接

          最新評論

          主站蜘蛛池模板: 双流县| 孟村| 定陶县| 筠连县| 乐安县| 星座| 东明县| 丹巴县| 招远市| 山西省| 祁阳县| 梁平县| 三门峡市| 湖南省| 来安县| 金山区| 长治县| 临夏县| 自贡市| 灌南县| 佛教| 宣恩县| 涞水县| 甘泉县| 吴江市| 万源市| 浮山县| 武穴市| 宝鸡市| 股票| 军事| 武义县| 华宁县| 潞西市| 特克斯县| 涞源县| 额敏县| 东港市| 天津市| 临夏市| 平果县|