2011-01-10 51 views

回答

1

XLSX文件本質上是一個壓縮的XML文件集合。如果您沒有找到合適的gem,可以嘗試使用Ruby手動生成它們,可能使用從Excel保存的空模板。我們曾經這樣做,工作得很好,不幸的是代碼不是開源的。

但是最終,我們需要更多的控制結果的外觀,所以我們使用Excel自動化創建了基於.NET的解決方案。

16

對於寫作的任務/導出XLSX文件,Axlsx是最功能compl ete圖書館我找到了。不過,它不支持讀取/導入xlsx文件。

https://github.com/randym/axlsx

下面是筆者的描述:

XLSX代與圖表,圖像,自動列寬, 定製的風格和完整的模式驗證。 Axlsx擅長於 ,幫助您生成漂亮的Office Open XML電子表格文檔 ,而無需瞭解整個ECMA規範。請查閱 自述文件,瞭解它有多容易的一些示例。最重要的是,您可以在序列化之前驗證您的xlsx文件,以確保 生成的任何內容將在客戶機上加載。

+1

我還會補充說gem是[very](http://axlsx.blog.randym.net/)[well](https://github.com/randym/axlsx#readme)[記錄](https) ://github.com/randym/axlsx/tree/master/examples)和[積極維護](https://github.com/randym/axlsx/graphs/commit-activity)。 –

+1

該庫只能寫入,根本不支持讀取現有的xlsx文件。 :-( –

+0

@morganchristiansson你是對的,我沒有注意到,因爲我只需要寫作。對不起,我很困惑:( –

0

我發現所有的現有紅寶石的接口練成庫是非常不紅寶石般,並且在讀取文件時確定細胞類型時尤其不準確。

所以,如果你正在尋找(IMO)更簡單的東西,我已經成功地使用了simple_xlsx_readersimple_xlsx_writer的組合。

我是simple_xlsx_reader的作者,截至本文編寫之時,我沒有在simple_xlsx_reader中進行測試,該測試聲明所有用於讀取由simple_xlsx_writer生成的文件的用例,所以我不能說它完全受支持,但我可以說我已經部署了一個生產應用程序,它可以將兩個庫連續地用於各種集成測試,而沒有問題。

1

Roo(https://github.com/roo-rb/roo)添加到上面的gem列表中,是一個流行的ruby gem,用於管理和使用excel和xlsx文件。

+2

從自述文件中判斷,它是隻讀訪問權限。 –

0

請與這種寶石,我是產生任何困難的格式/佈局 寶石「axlsx」,github上非常有用:「randym/axlsx」,分支:「主人」 和參考這些鏈接對文檔axlsx-documentation