有没有人使用基于Java的库来生成Excel文档?最好支持2003?以编程方式生成Excel文档
回答
我目前正在使用Apache POI,(http://poi.apache.org/index.html),它非常全面。 2003年的文件格式版本仍处于测试阶段,但似乎运行良好。我并不是在运用它的力量,只是简单地读写Excel,但它似乎是可靠的。
每当我必须这样做,我问自己,如果一个大的HTML表就足够了。
大部分时间都是这样。您可以简单地编写html标签并将其标记为.xls文件。 Excel将打开它正确
+1 :-)哇很好玩的技巧 – Blauohr 2009-07-02 14:27:54
格式化的HTML表格将正确导入,但最好使用Excel 2003 XML Toolbox中的Excel XML格式以满足更高级的需求(多个工作表,公式等)。
正如一个简单的HTML表格中保存为.xls的旁注公式一样工作正常。每当需要更复杂的事情时,可以在Excel中设计一个“模板”工作簿,保存为XML,然后将该XML重命名为.xls(Excel处理该文件就好),然后使用该XML文件作为插入缺失信息的模板。 http://poi.apache.org/也可以正常工作。 – 2009-07-02 14:26:44
正如前面提到的另一个答案,用户每天生成数百个报告,并将每个报告导入到excel中会浪费大量时间。需要直接为用户生成文件。 – predhme 2009-07-02 15:17:14
如果您不需要花哨的标题,那么只需输出CSV。
你也可以试试Java的SmartXLS, 它比poi和jexcelapi有更多的功能,它是一个商业产品。
我Jacob作为一般的Java和COM解决方案做到这一点。然而在我看来,雅各布并没有很好地处理多次呼叫(比如说数百万次呼叫),我需要修补一下。这些补丁不被Jacob维护者接受。
无论如何,雅各布是开源(LGPL),补丁后我有一个生产环境运行了多年。
使用COM连接到Excel后,使用标准Excel API处理文档。首先尝试它如何与VBS(VBScript Language Reference)协同工作,然后用java实现。
您可以生成一个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!
- 1. 以编程方式更新excel文档
- 2. 以编程方式从ASP.NET生成可编辑的Word文档?
- 3. 如何以编程方式使用TeX生成文档?
- 4. 以编程方式生成JavaDoc文件
- 5. 以编程方式生成.mht文件
- 6. 以编程方式生成BPEL文件?
- 7. 以编程方式生成Class.vb文件
- 8. 如何使用宏以编程方式生成Excel
- 9. 以编程方式访问Excel自定义文档属性
- 10. SSRS:以编程方式生成报告
- 11. Yii2以编程方式生成模型
- 12. 以编程方式生成pom.xml
- 13. 以编程方式生成顶点
- 14. 以编程方式生成布局(XAML)
- 15. 以编程方式生成的视图
- 16. 以编程方式生成Eclipse项目
- 17. 以编程方式生成Django sqlsequencereset
- 18. 以编程方式生成HTML
- 19. Spring MVC:以编程方式生成ModelAndView
- 20. 以编程方式生成QR代码
- 21. 以编程方式生成声音
- 22. 以编程方式生成视频
- 23. 以编程方式生成html标记
- 24. 用Java以编程方式生成XSD
- 25. 以编程方式打印文档
- 26. 以编程方式打印HTML文档
- 27. 以编程方式下载Google文档?
- 28. 以编程方式比较word文档
- 29. 以编程方式打印PDF文档
- 30. 以便携式方式以编程方式打开文档
“文件”是什么意思?一些看起来像报告或只是一个电子表格中的数字? – pjp 2009-07-02 14:29:41
生成电子表格:) – predhme 2009-07-02 15:19:39