我通过使用roo gem来获得不可接受的性能问题 使用此gem中的XLSX或XLS库读取文件。
有人可能会建议我如何解析.XLSX文件吗?
parsed_file = Excel.new(filename,false, :ignore) if (file_format.upcase
== "XLS")
parsed_file = Excelx.new(filename,false, :ignore) if
(file_format.upcase == "XLSX")
raise t "#{filename} is not an Excel file!" if (!parsed_file)
parsed_file.default_sheet =
parsed_file.sheets[0]#'Sheet2'#oo.sheets[1]
first_row = parsed_file.first_row
last_row = parsed_file.last_row
first_column = parsed_file.first_column
last_column = parsed_file.last_column
#logger.info "#### Total Rows:#{last_row}, first_row:#{first_row},
last_row:#{last_row}, first_column:#{first_column},
last_column:#{last_column}"
first_row.upto(last_row) do |current_line|
# Stuff ....
end
谢谢
答案 0 :(得分:0)
顺便说一下,
mongrel服务器从3767行的文件中挂起.xls或.xlsx,例如:
002N6V3 1506 RH-128 YE YEMEN MOBILE BLACK 0,5 KILOGRAMS Y Y
002N6V3 1506 RH-128 YE YEMEN MOBILE BLACK 0,5 KILOGRAMS Y Y
........
但它适用于1000行以及更少。
通过控制台,它工作。但大约34分钟后。腹板不可接受。 通过使用Spreadsheet需要可接受的时间而不是挂起mongrels服务器。据说是比电子表格更现代的roo gem。
我也将它用作下一种方式:
parsed_file = Excelx.new(filename,false, :ignore) if (file_format.upcase == "XLSX")
(1..parsed_file.last_row).each { |row|
ret << parsed_file.row(row)
}
有人遇到过这个宝石的同样问题吗?除了稍后使用delayed_jobs运行此任务之外的任何其他选择吗?