【问题标题】:XLSX file not found Rails, file format not correctXLSX 文件未找到 Rails,文件格式不正确
【发布时间】:2015-04-15 16:10:34
【问题描述】:

我正在开发一个 Rails 应用程序,该应用程序将读取一个名为 properties 的 XLSX 文件。我经常收到文件不存在的错误。

这是我正在读入电子表格的衣柜模型:

require 'rubygems'
require 'roo'
require 'json'

def
    ...
    find_properties
  self.save!
end

def find_properties
  binding.pry
  # xlsx = Roo::Spreadsheet.open('./Properties.xlsx')
  # xlsx = Roo::Excelx.new("./Properties.xlsx")
  book = Roo::Spreadsheet.open('./Properties.csv')
  book = Roo::CSV.new('Properties.csv')
  sheets = book.sheets
end

我的 Gemfile 包含“roo” gem 和我从类似问题中收集到的两个 gem

gem 'roo' gem 'rubyXL' gem 'rubyzip'

上面你可以看到我正在尝试访问 properties.xlsx 文件,但找不到。

在这里您可以看到可以访问 Properties.CSV 文件,但其中没有显示任何内容

目前这两个文件位于我的“模型”文件夹中,我计划在解决此文件访问问题后将它们放入我的公用文件夹中。

我也刚刚使用了 RubyXL 作为另一个选项,没有 bueno,它读取存在文件格式错误,无法读取为 XLSX 文件。

根据我的研究,我遇到了以下问题:unzipping problems xlsxreading issues XLSXfile format error

【问题讨论】:

    标签: ruby-on-rails ruby csv import-from-excel


    【解决方案1】:

    您的文件的正确路径是,假设此模型/关注目录在应用程序内:

    File.join(Rails.root, 'app','models','concerns', 'properties.xslx')
    

    【讨论】:

    • 嗨!抱歉,如果图片可以使用更多上下文,但我认为它位于主模型文件夹下,而不是关注子文件夹下。如果我理解正确,我只需输入这个s = File.join(Rails.root, 'app','models', 'properties.xslx'),它会产生"/Users/christinaleuci/Programming/Curate/Curate/app/models/properties.xslx"。当我将其作为 Excelx 运行时,我得到了 use Roo::Excelx.new to handle .xlsx spreadsheet files. This has .xslx TypeError: /Users/christinaleuci/Programming/Curate/Curate/app/models/properties.xslx is not an Excel-xlsx file
    • 你是对的,我看到了文件夹,只是假设它是打开的,而不是更仔细地查看。您现在正在获取文件,因此此时您只需要以正确的格式获取文件或使用正确的 Roo 模块。以防万一需要提及:命名“*.xlsx”不会自动使其成为有效的 Excel XSLX 文件。
    • 是的,我知道,我已经对文件进行了两次和三次检查。这是一个 Open Office XML 电子表格 xlsx 文件。我刚刚将其转换为具有相同错误的 xsl 文件。我可能会查看另一个 gem 文件,因为 Roo 目前无法正常工作。感谢您的帮助!
    • Open Office 可能能够以 Excel 可以理解的方式读取并保存到 xlsx,但 Roo 可能不会。我会将此信息提交给 Roo 开发人员,或者至少检查他们的问题跟踪器,看看其他人是否对从 Open Office 导出的 Excel 格式有问题。
    • 谢谢克里斯,我会继续研究的!
    猜你喜欢
    • 2013-05-14
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 2016-12-18
    相关资源
    最近更新 更多