2009-07-02 243 views
3

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

+0

“文件”是什么意思?一些看起来像报告或只是一个电子表格中的数字? – pjp 2009-07-02 14:29:41

+0

生成电子表格:) – predhme 2009-07-02 15:19:39

回答

6

我目前正在使用Apache POI,(http://poi.apache.org/index.html),它非常全面。 2003年的文件格式版本仍处于测试阶段,但似乎运行良好。我并不是在运用它的力量,只是简单地读写Excel,但它似乎是可靠的。

6

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

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

+0

+1 :-)哇很好玩的技巧 – Blauohr 2009-07-02 14:27:54

1

JExcelApi

我亲自用它为一个报告,目前正在生产。这是一个相当不错的图书馆,拥有足够的文档,而且是开源的。

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

1

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

+0

正如一个简单的HTML表格中保存为.xls的旁注公式一样工作正常。每当需要更复杂的事情时,可以在Excel中设计一个“模板”工作簿,保存为XML,然后将该XML重命名为.xls(Excel处理该文件就好),然后使用该XML文件作为插入缺失信息的模板。 http://poi.apache.org/也可以正常工作。 – 2009-07-02 14:26:44

+0

正如前面提到的另一个答案,用户每天生成数百个报告,并将每个报告导入到excel中会浪费大量时间。需要直接为用户生成文件。 – predhme 2009-07-02 15:17:14

2

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

1

Jacob作为一般的Java和COM解决方案做到这一点。然而在我看来,雅各布并没有很好地处理多次呼叫(比如说数百万次呼叫),我需要修补一下。这些补丁不被Jacob维护者接受。

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

使用COM连接到Excel后,使用标准Excel API处理文档。首先尝试它如何与VBS(VBScript Language Reference)协同工作,然后用java实现。

0

您可以生成一个VBS的Excel文件,然后CAL脚本从Java这样的:

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

创建脚本是非常简单的

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

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 

Set objWorkbook = objExcel.Workbooks.Add() 
objWorkbook.SaveAs("D:\yourExcel.xls") 

objExcel.Quit 

然后将其保存为your_VBS_Name.vbs

钍ats it!