用Java读取excel文件
我有一张excel表格,上面有所有的计算。我想用java创建一个GUI,在这里我可以输入在excel工作表中进行计算所需的值。输出(结果)以及excel工作表中获得的图表应显示在GUI框架中。excel工作表应在后台运行,且用户不可见。如果必须使用excel进行计算,您可能应该在GUI中使用VBA。谷歌是您的朋友。以下是一些发现:有一个很好的例子,它看起来也很强大,我不确定这是否是你需要的 顺便说一句,OpenOffice有一些远程API用于评估excel(和其他Office)文件,使用此功能。可能您可以在其社区版源代码中找到解决方案。我发现了这一点,您应该能够使用microsoft vitrual机器和microsoft sdk for java 4.0来使用嵌入Excel中的自动化服务器(“Excel.Application”) 如果您不想使用Microsoft虚拟机和SDK来编译和运行代码,还有:,可以从任何VM运行 直接从上述链接页面获取: 以下示例使用Microsoft®Excel作为自动化服务器:用Java读取excel文件,java,excel,Java,Excel,我有一张excel表格,上面有所有的计算。我想用java创建一个GUI,在这里我可以输入在excel工作表中进行计算所需的值。输出(结果)以及excel工作表中获得的图表应显示在GUI框架中。excel工作表应在后台运行,且用户不可见。如果必须使用excel进行计算,您可能应该在GUI中使用VBA。谷歌是您的朋友。以下是一些发现:有一个很好的例子,它看起来也很强大,我不确定这是否是你需要的 顺便说一句,OpenOffice有一些远程API用于评估excel(和其他Office)文件,使用此功能。
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(微软的编译器)编译,并且只能在JVView(微软的虚拟机)下运行。但是,如果安装了JACOB发行版,则可以将两个顶部行替换为:
import com.jacob.com.*;
import com.jacob.activeX.*;
现在,您可以使用任何Java编译器编译它,并在任何Win32平台上使用任何Java虚拟机运行它 如果您需要Microsoft Excel集成,可能会对您的应用程序有所帮助。Apache POI可以帮助他创建或读取Excel文件,但它会帮助他动态使用Excel evaluator吗?您是对的。Apache POI只能读/写Excel文件,并且不能自己操作Excel实例:(事实上,JExcelApi也不能做到这一点。不确定是否有免费的工具可以做到这一点。如果你需要使用Java,你可能必须购买一个工具。或者,正如其他人所建议的,使用VBA或.Net。我写过一个C应用程序,以前也做过类似的事情。运行得很好。我建议避免使用MS Office,还有什么是e一个更好的解决方案是使用标准的CSV文件,您可以使用很多工具来与之交互,或者您可以轻松地构建自己的工具。