Чтение файла Excel с использованием Java - PullRequest
0 голосов
/ 22 января 2012

У меня есть лист Excel, где все вычисления сделаны.Я хочу создать графический интерфейс в Java, где я могу ввести значение, необходимое для расчетов в Excel листе.Вывод (результат) вместе с диаграммой, полученной в таблице Excel, должен отображаться обратно в рамке GUI.Лист Excel должен работать в фоновом режиме и быть невидимым для пользователей.

Ответы [ 5 ]

2 голосов
/ 23 января 2012

Если вам нужна интеграция с Microsoft Excel, JExcel может быть полезным для вас.

0 голосов
/ 23 января 2012

Я нашел это, Использование COM из Java. Вы должны иметь возможность использовать машину microsoft vitrual и microsoft sdk для java 4.0 для использования сервера автоматизации, встроенного в Excel («Excel.Application»).

Если вы не хотите использовать виртуальную машину Microsoft и SDK для компиляции и запуска кода, есть также: JACOB: мост JAva-COM , который можно запуститьс любой виртуальной машины.

Получено непосредственно с указанной выше 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 (компилятор Microsoft) и работать только под JVIEW (виртуальная машина Microsoft).Однако, если у вас установлен дистрибутив JACOB, вы можете заменить две верхние строки на:

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

, и теперь вы можете скомпилировать это с любым компилятором Java и запустить его, используя любую виртуальную машину Java на любом Win32.Платформа.

0 голосов
/ 22 января 2012

Google твой друг. Вот некоторые результаты: JExcelApi с хорошим примером здесь и Apache POI , который также выглядит довольно мощным

0 голосов
/ 22 января 2012

Я не уверен, что http://www.exceleverywhere.com/java.htm - это то, что вам нужно или нет.

Кстати, в Open Office есть некоторый удаленный API для оценки файлов Excel (и других Office), Logical Doc использует эту функцию.может быть, вы можете найти решение в его исходном коде.

0 голосов
/ 22 января 2012

Если вам нужно использовать Excel для расчетов, вам, вероятно, следует использовать VBA для вашего графического интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...