布衣王子

          Email:roose2008@gmail.com QQ:79212131

          Java 讀取 OpenOffice 文檔

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

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

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

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

          3. 使用ODF4j讀取OpenOffice文檔
          使用ODF4j讀取OpenOffice文檔包括兩個層次:Package Layer和Document Layer。
          • Package Layer
              在Package Layer,OpenOffice文檔里的各種資源是作為一個命名的資源來處理。在這個層次一般用于操作二進制文件,比如圖片等。
          • Document Layer
              在Document Layer,主要正對文檔的內(nèi)容進行操作。在這個層次,文檔內(nèi)容是作為層次結(jié)構(gòu)被操作的,因為文檔的內(nèi)容是以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文檔中的內(nèi)容。

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


          ===相關(guān)下載===
          1. ODF4j: http://wiki.services.openoffice.org/wiki/Odf4j



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


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


          網(wǎng)站導航:
           

          導航

          常用鏈接

          相冊

          java的相關(guān)連接

          最新評論

          主站蜘蛛池模板: 德州市| 枣阳市| 驻马店市| 翁源县| 德格县| 建昌县| 龙门县| 明星| 法库县| 南京市| 泗水县| 兴宁市| 宝丰县| 汕头市| 荆州市| 新民市| 晋中市| 清水县| 巴南区| 清远市| 溧阳市| 高雄县| 凯里市| 双城市| 南部县| 常熟市| 常德市| 西盟| 金华市| 黔江区| 成安县| 万安县| 宜宾市| 酒泉市| 新绛县| 昌图县| 海城市| 吴桥县| 葵青区| 屏东县| 疏勒县|