簡體   English   中英

無法使用Roo將.xls轉換為.csv

[英]Unable to convert .xls to .csv using Roo

我的代碼的目標是處理目錄中的所有.xls文件,並將它們全部轉換為.csv。 這在過去一直有效,但是在更新Ruby和Roo之后,它顯示了以下錯誤。 我正在使用Ruby 1.9.3-p362和Roo 1.11.2。

require 'rubygems'
require 'csv'
require 'iconv'
require 'mysql2'
require 'mysql'
require 'roo'

begin
    Dir["#{@work_path}/*.xls"].each do |file|  
        begin
          file_path = "#{file}"
          file_basename = File.basename(file, ".xls")
          xls = Excel.new(file_path)
          xls.to_csv("#{@kenshoo_work_path}#{file_basename}.csv")
          @log.info("Converted file #{file}")
          FileUtils.remove(file)
          @log.info("Deleted file #{file}")
        rescue Exception => e
          @log.warn("Unable to convert file: #{file_basename} into csv because #{e.message}")
        end
    end
end

對於每個文件,我都會收到以下錯誤消息:

Unable to convert file: #{file} into csv because uninitialized constant Excel

任何幫助表示贊賞。 謝謝。

rooRoo::名稱空間中具有Excel類。 您需要將所有Excel實例替換為Roo::Excel

較早的版本Roo::下沒有命名空間類,因此可以解釋為什么代碼在更新后會中斷。

新的存儲庫在這里: https : //github.com/Empact/roo

暫無
暫無

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

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