簡體   English   中英

使用Java讀取Excel文件

[英]Reading excel file using Java

我有一張Excel工作表,其中所有計算都已完成。 我想在Java中創建一個GUI,可以在其中輸入在Excel工作表中完成計算所需的值。 輸出(結果)以及在excel工作表中獲得的圖表應顯示在GUI框架中。 Excel工作表應在后台運行,並且對用戶不可見。

如果您需要Microsoft Excel集成, JExcel可能對您有所幫助。

如果必須使用Excel進行計算,則可能應將VBA用於GUI。

我不確定http://www.exceleverywhere.com/java.htm是否是您所需要的。

通過Open Office擁有一些用於評估excel(和其他Office)文件的遠程API, Logical Doc使用了此功能。 也許您可以在其社區版源代碼中找到該解決方案。

從Java使用COM找到了這個 您應該能夠使用Microsoft Vitrual機器和Microsoft SDK for Java 4.0來使用嵌入在Excel(“ Excel.Application”)中的自動化服務器。

如果您不想使用Microsoft虛擬機和SDK來編譯和運行代碼,則還有: JACOB:一個JAva-COM Bridge ,可以從任何VM上運行。

直接從上面鏈接的JACOB頁面中獲取:

以下示例將Microsoft®Excel用作自動化服務器:

import com.ms.com.*;
import com.ms.activeX.*;

public class DispatchTest
{
  public static void main(String[] args)
  {
    ActiveXComponent xl = new ActiveXComponent("Excel.Application");
    Object xlo = xl.getObject();
    try {
      System.out.println("version="+xl.getProperty("Version"));
      System.out.println("version="+Dispatch.get(xlo, "Version"));
      xl.setProperty("Visible", new Variant(true));
      Object workbooks = xl.getProperty("Workbooks").toDispatch();
      Object workbook = Dispatch.get(workbooks,"Add").toDispatch();
      Object sheet = Dispatch.get(workbook,"ActiveSheet").toDispatch();
      Object a1 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
                                  new Object[] {"A1"},
                                  new int[1]).toDispatch();
      Object a2 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
                                  new Object[] {"A2"},
                                  new int[1]).toDispatch();
      Dispatch.put(a1, "Value", "123.456");
      Dispatch.put(a2, "Formula", "=A1*2");
      System.out.println("a1 from excel:"+Dispatch.get(a1, "Value"));
      System.out.println("a2 from excel:"+Dispatch.get(a2, "Value"));
      Variant f = new Variant(false);
      Dispatch.call(workbook, "Close", f);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      xl.invoke("Quit", new Variant[] {});
    }
  }
}

就目前而言,該代碼只能使用JVC(微軟的編譯器)進行編譯,並且只能在JVIEW(微軟的VM)下運行。 但是,如果已安裝JACOB發行版,則可以用以下兩個頂行替換:

import com.jacob.com.*;
import com.jacob.activeX.*;

現在,您可以使用任何Java編譯器進行編譯,並可以在任何Win32平台上使用任何Java VM運行它。

Google是您的朋友。 :我這里還有一些發現JExcelApi的一個很好的例子在這里 ,和Apache的POI也似乎相當強大

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM