簡體   English   中英

Roo gem .xlsx文件性能問題

[英]Roo gem .xlsx files performance problems

通過使用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

謝謝

順便說說,

雜種服務器因3767行的文件而掛起.xls或.xlsx,例如:

002N6V3 1506 RH-128也門移動黑0,5 KILOGRAMS YY

002N6V3 1506 RH-128也門移動黑0,5 KILOGRAMS YY

........

但它在1000行及更少的行中效果很好。

在控制台上它起作用了。 但是大約34分鍾后。 在網路上無法接受。 通過使用電子表格會花費可接受的時間,並且不會掛起mongrels服務器。 據說比電子表格更現代。

我也將其用作下一步:

 parsed_file = Excelx.new(filename,false, :ignore) if (file_format.upcase == "XLSX")
  (1..parsed_file.last_row).each { |row| 
      ret << parsed_file.row(row)          
  }

有人遇到這種寶石同樣的問題? 除了通過稍后使用delay_jobs在后台運行此任務之外,還有其他選擇嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM