程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java中使用JCOM操作Office對象

Java中使用JCOM操作Office對象

編輯:JAVA編程入門知識

  通過使用COM技術,我們用微軟Office應用程序能夠建立很多應用程序擴展,但是Java開發人員卻無法享受它帶來的便利--除非他們擁有方便的Java訪問COM的途徑(Java-to-COM橋)。使用JCom的時候,你可以在Java中控制幾乎所有的COM對象,而且它還帶有一些用於Excel的強大的輔助類。
  
  在你每次編寫用Html表格樣式或Java表格對象顯示數據的應用程序的時候,通常都需要帶有"導出到Excel"功能。那麼頭疼的問題就出現了。怎麼樣實現這種功能呢?在HTML中顯示的可以在Office 2003中處理嗎?沒有這麼好!你還必須支持Office 97!
  
  你只能去找一個符合當前需求的工具了,但是接著收到更多的要求了。"這能在Word中做到嗎?Powerpoint能做到嗎?能不能用調制解調器撥號到遠程服務器上並發布數據?Java無法實現這些功能是什麼意思啊?Java可以實現任何功能。"
  
  感謝作為Java和COM橋梁的框架組件,它使你在碰到這些情況的時候都可以回答"Yes"。Java-COM橋梁使你能夠根據自己的需要操作Windows組件--以前這是VB、C++和.NET開發人員的領地。你通過實現一個與DCOM後端(back end)對話的Java前端(front end),可以遠離端對端(end-to-end)的COM系統。在本文的末尾,你可以使用其中一個Java-to-COM橋:它可以被命名為JCom。
  
  Excel基礎知識
  
  開始之前,你需要首先從Sourceforge網站下載API。它包含了JCom所使用的Java類的所有源代碼、C++代碼和JCom用於配置Java和COM的編譯好的DLL。把這個DLL放到你的Java主目錄的/bin/目錄下面,否則會出現問題。同時,為了不出現問題,還要正確地設置JAVA_HOME環境變量。JCom的大多數文檔目前都是用日語寫的,但是翻譯工作正在進行中,因此以後會有些改進的。
  
  下載和安裝過程完成以後,用列表1中的代碼試一試。這段代碼會建立到Excel的JCom接口,並把"Hello World"寫入第一個單元格中。你可以看到如圖1所示的結果。盡管JCom是一個通用的COM類庫,但是還是帶有很多用於Excel的輔助類,這是因為Excel可能是最常用的自動化COM應用程序。這些輔助類可以為我們節省很多時間,它們使JCOM成為一個更好的類庫了。
  
  列表1:開始使用JCOM和Excel
  
  import jp.ne.so_net.ga2.no_ji.jcom.excel8.*;
  import jp.ne.so_net.ga2.no_ji.jcom.*;
  
  public class testSimple
  {
  public static void main(String[] args) throws Exception {
  ReleaseManager rm = new ReleaseManager();
  try {
  System.out.println("EXCEL is Starting...");
  ExcelApplication excel = new ExcelApplication(rm);
  excel.Visible(true);
  ExcelWorkbooks xlBooks = excel.Workbooks();
  ExcelWorkbook xlBook = xlBooks.Add();
  ExcelWorksheets xlSheets = xlBook.Worksheets();
  ExcelWorksheet xlSheet = xlSheets.Item(1);
  ExcelRange xlRange = xlSheet.Cells();
  xlRange.Item(1,1).Value("Hello, World!" );
  }
  catch(Exception e) { e.printStackTrace(); }
  finally { rm.release(); }
  }
  }

  Java中使用JCOM操作Office對象
  圖1:Java中使用Excel的第一個COM自動化

  
  假如曾經使用VB或VBA來自動化Excel,那麼你應該很熟悉列表1中的代碼了。ExcelApplication類暴露了Workbooks()屬性,它列舉出Excel中當前打開的工作薄(workbook),並答應你向運行的Excel副本增加或刪除工作薄。使用.Add()方法增加工作薄,這個方法會返回一個工作薄的引用。
  
  在Excel中工作薄用於保存輸入的數據。工作薄是XLS文件的基礎。一個工作薄由多個工作表(worksheet,在圖1中有三個工作表,分別叫做Sheet1、Sheet2和Sheet3)。工作表通過Item屬性來枚舉。你可以使用這個屬性訪問特定的工作表。在圖1中,Sheet 1是第一個工作表,因此你可以使用xlSheets.Item(1)來獲取對它的引用。
  
  有了工作表之後,你就可以使用range(范圍)來操作它上面的數據。Range是一個單元格或多個單元格。例如,單元格A1可以使用range (1,1)來引用,接著可以使用Value屬性把數據載入單元格中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved