我有一個Ruby + Merb web應用程序需要快速估算(或準確計算)電子表格有多少行。它接受roo庫支持的所有格式,包括.xls,.xlsx,.ods和基於文本的格式(如CSV和TSV)。快速估算Excel文件中的行數
CSV/TSV是方便,快捷:
`cat #{filepath} | dos2unix | wc -l`.to_i
但是,使用Roo的圖書館可能會很慢大文件:
e = Excel.new(filepath)
e.last_row
我用Excel文件格式的經驗是零,所以我正在呼籲SO質量問題:如何僅使用Ruby和/或標準UNIX程序嘗試估算XLS,XLSX或ODS文件包含的行數?我的目標是能夠在1.5秒內處理5MB文件(給出或採取各種硬件)。
如果我理解正確,roo實際上在引擎蓋下使用了Parseexcel。 無論是哪種情況,問題是在大型Excel文件(大於幾百KB)中讀取都會花費太多時間,至少在Ruby中。我想解決方案是估計行數而不正確地讀取和解析文件 - 可能通過grep查找二進制文件格式的行分隔符或標識符。 – Tyson 2009-10-08 01:15:48
對不起,除此之外,我能想到的唯一辦法是檢查xls文件格式http://www.wotsit.org/ – Jacob 2009-10-08 01:18:29