有沒有人使用基於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