XLSX 文件未找到 Rails,文件格式不正确
Posted
技术标签:
【中文标题】XLSX 文件未找到 Rails,文件格式不正确【英文标题】:XLSX file not found Rails, file format not correct 【发布时间】: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 xlsx、reading issues XLSX、file format error
【问题讨论】:
【参考方案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 格式有问题。
谢谢克里斯,我会继续研究的!以上是关于XLSX 文件未找到 Rails,文件格式不正确的主要内容,如果未能解决你的问题,请参考以下文章
怎样在Android中解析doc,docx,xls,xlsx格式文
怎样在Android中解析doc,docx,xls,xlsx格式文
Ruby/Rails - 正确显示/格式化文本区域表单控件中的文本