以编程方式生成Excel文档

有没有人使用基于Java的库来生成Excel文档? 最好支持2003?

我目前正在使用非常全面的Apache POI( http://poi.apache.org/index.html )。 2003年的文件格式版本仍处于testing阶段,但似乎工作得不错。 我并不是在行使这个权力,只是简单地读写Excel,但似乎是可靠的。

每当我必须这样做,我问自己,如果一个大的HTML表格就足够了。

大部分时间是。 您可以简单地编写html标签并将其标记为.xls文件。 Excel将正确打开它

如果你不需要花哨的标题,那么只需输出CSV

JExcelApi的

我已经亲自使用了一个正在生产的报告。 这是一个相当不错的图书馆,有足够的文档,它是开源的。

它工作得很好,但有几个你应该知道的陷阱。 他们没有一个是交易破产者,只是决定如何做一些事情。 请务必阅读常见问题 。 它会解释它们并告诉你如何避免它们。

格式化的HTML表格将正确导入,但最好使用Excel 2003 XML工具箱中的Excel XML格式来满足更高级的需求(多个工作表,公式等)。

你也可以尝试Java的SmartXLS,它比poi和jexcelapi有更多的function,它是一个商业产品。

http://www.smartxls.com/indexj.htm

我把雅各做成一个普通的Java和COM解决scheme。 然而,在我的阅读中,雅各布并没有很好地处理多次呼叫(比如说数百万次呼叫),我需要修补一下。 这些补丁不被Jacob维护者接受。

无论如何,雅各布是开源(LGPL)和补丁后,我有一个生产环境运行了多年。

用COM连接到Excel后,使用标准的Excel API来处理文档。 首先尝试一下VBS( VBScript语言参考 )的工作原理,然后在java中实现。

你可以用VBS生成一个excel文件,然后像这样从java中调用脚本:

String script = "your_VBS_Name.vbs" String cmd = "D:\\YourPath" + script; Runtime.getRuntime().exec(cmd); 

创build脚本真的很简单

打开记事本,并按照下面的例子:

 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Add() objWorkbook.SaveAs("D:\yourExcel.xls") objExcel.Quit 

然后将其另存为your_VBS_Name.vbs

而已!