2013-11-15 92 views
1

我有這樣的問題。當我生成數千行XLS時,需要花費太多時間。什麼是XLS生成最快的庫?

目前我正在使用writeexcel gem。我也知道acts_as_xls,但速度並不快(大約20%)。

另一個庫 - https://github.com/splendeo/to_xls,但它不適合我的情況 - 我使用自定義SQL查詢,所以我傳入XLS生成器的對象不是ActiveRecords。

有人可以給我這方面的意見嗎?

回答

0

談到CSV寫作的速度,有兩個主要因素。

  1. 代碼的開銷。
  2. 數據集的大小。

因爲你(2)將是最大的瓶頸。所以我的第一個建議是找到一些減少寫入行數的方法。但是,我會認爲這是不可能的。

有了寶石,通常會有大量的開銷。這是因爲寶石試圖儘可能通用,並支持儘可能多的功能。如果你需要做非常耗時的任務,有時你可能會更好地編寫你自己的代碼......或者甚至可以爲你自己的Gem找一個特殊情況。

如果您承諾使用寶石,我會推薦benchmarking您有不同的選擇。

我不是最好的XLS格式,但我打賭,你正在使用的是CSV已經支持。在這種情況下,您應該能夠立即編寫一個快速的CSV編寫器!

File.open('some_file.csv', 'w') do |file| 
    file.write "Line 1, data 1\n" 
    file.write "Line 2, data 2\n" 
end 

有一些樣板讓你開始!

+0

謝謝。我會想一點,做一些測試,也許再問你一些問題。 – skrypalyk

+1

這就是我們在這裏。 – screenmutt

相關問題