问题标签 [roo-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
14003 浏览

ruby - 修剪尾随 .0

我有一个包含零件号的 Excel 列。这是一个示例

如您所见,它可以是许多不同的数据类型:FloatIntString. 我正在使用roogem 来读取文件。问题在于roo将整数单元格解释为Float,向它们添加尾随零 (16431 => 16431.0)。我想修剪这个尾随零。我不能使用to_i,因为它会修剪所有需要小数点的单元格的尾随数字(上例中的第一行),并将剪切String行中字符串 char 之后的所有内容(上例中的最后一行)。

目前,我有一个方法可以检查单元格的最后两个字符,如果它们是“.0”,则修剪它们

这行得通,但感觉很糟糕和hacky。将我的 Excel 文件内容转换为 Ruby 数据结构的正确方法是什么?

0 投票
4 回答
627 浏览

ruby-on-rails - Rails Csv.new 这个类是从哪里调用的?

我在这里创建我自己版本的 Rayan Bates CSV 截屏视频......

http://railscasts.com/episodes/396-importing-csv-and-excel

我的模型中有这个...

...并在我的应用程序中收到此错误...

我找不到“Csv”类的初始化位置,或者它应该来自哪里。任何帮助表示赞赏。

0 投票
0 回答
616 浏览

ruby-on-rails - 如何修复“电子表格”gem 中的错误(未知代码页 0x906c)?

我需要从 xls 文件中获取有关 gem 'roo' 的信息。当我尝试读取文件时,出现错误。

请帮助修复此错误!

我的代码:

RuntimeError:来自 /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:75:in 的未知代码页 0x906c

block in encoding' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:74:in 从 /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:74:in read_codepage' 中获取' encoding' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:211:in 来自 /home/hender/.rvm /gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:821:in read_workbook' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet/excel/reader.rb:135:in read' from /home/hender/.rvm/gems/ruby-2.1.2/gems /spreadsheet-0.9.7/lib/spreadsheet/excel/workbook.rb:32:in open' from /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet.rb:63:in open' 来自 /home/hender/.rvm/gems/ruby-2.1.2/gems/spreadsheet-0.9.7/lib/spreadsheet .rb:69:in open' from /home/hender/.rvm/gems/ruby-2.1.2/gems/roo-1.13.2/lib/roo/excel.rb:40:in block in initialize' from /home/hender/.rvm/gems/ruby-2.1.2/gems/roo-1.13.2/lib/roo/base.rb:565:in block in make_tmpdir' from /home/hender/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tmpdir.rb:88:in mktmpdir' from / home/hender/.rvm/gems/ruby-2.1.2/gems/roo-1.13.2/lib/roo/base.rb:564:in make_tmpdir' from /home/hender/.rvm/gems/ruby-2.1.2/gems/roo-1.13.2/lib/roo/excel.rb:31:in initialize' 来自 /home/hender/helloapp/app/models/mode。 rb:26: new' from /home/hender/helloapp/app/models/mode.rb:26:in你好'
... 2 个级别...来自 /home/hender/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/console.rb:9:in start' from /home/hender/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:69:in console' 来自 / home/hender/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in run_command!' from /home/hender/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands.rb:17:in '来自/home/hender/.rvm/gems/ruby- 2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in require' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:inblock in require' 来自 /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1。 1/lib/active_support/dependencies.rb:232:inload_dependency' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in需要'来自 /home/hender/helloapp/bin/rails:8:in<top (required)>' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in加载'来自 /home/hender/.rvm/gems/ruby-2.1.2/gems /activesupport-4.1.1/lib/active_support/dependencies.rb:241:inblock in load' from /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:inload_dependency' 来自 /home/hender/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in load' from /home/hender/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' 来自 /home/hender/.rvm/rubies /ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' from -e:1:in'2.1.2 :004 > ^C 2.1.2 :004 >##

0 投票
1 回答
692 浏览

ruby-on-rails - 检测 ruby​​ 中 xlsx 内容的编码

我有一个允许上传 xls、xlsx 和 csv 格式的电子表格的应用程序。这些数据后来在各种面向客户的地方使用。管理数据的人员使用各种工具来创建电子表格,包括 mac/excel、win/excel、win/openoffice、linux/libreoffice...

真正的问题是 mac/excel 编码,它创建了一些看起来令人讨厌的字符串。有什么方法可以确保文件内容的编码是有效的 utf-8?

我的方法只是 File.read(file.path).valid_encoding?检查仅适用于 csv...

0 投票
1 回答
1522 浏览

ruby-on-rails - Roo 获取数字而不是文本

我正在使用 roo 解析出这样的 excel 表

但是,Roo 一直给我一个 PM_PartNo 列的编号 200275577.0。在 Excel 工作表中,此列的所有单元格都设置为文本格式。解析中应该返回的是“200275577”作为文本,而不是 200275577.0 作为数字。有没有办法确保它符合 excel 格式?

0 投票
1 回答
1877 浏览

ruby-on-rails-4 - 带有 rails4 的 Roo 为 nil:NilClass 提供未定义的方法 `[]'

我正在尝试基于http://railscasts.com/episodes/396-importing-csv-and-excel使用 Roo gem 将 CSV 和 Excel 文件导入到 rails 4 项目(带有验证) 。

我对 Rails4 而不是 Rails3 以及对 Roo 的更改进行了一些更改,我的 ProjectImporter 模型现在看起来像:

当我尝试运行导入(使用测试 CSV 数据)时,它会失败header = spreadsheet.row(1)并出现错误undefined method '[]' for nil:NilClassputs我包含的额外语句证实了它spreadsheet本身不是 nil:它给出了!!! Spreadsheet: #<Roo::CSV:0x44c2c98>. 但是,如果我尝试在其上调用几乎任何预期的方法,例如#last_row,它会给我同样的未定义方法错误。

那么我做错了什么?

0 投票
2 回答
1106 浏览

ruby-on-rails - 在 Rails 中导入共享的 Google 电子表格

我正在尝试使用 Roo 将共享的(对所有人)Google 电子表格导入我在 Rails 中的数据库中。以下代码:

给我

nil:NilClass 的未定义方法 `spreadsheet_by_key' 错误消息。

你能建议我做错了什么吗?在 Rails 中导入共享的 Google 电子表格最简单的方法是什么?

0 投票
0 回答
420 浏览

ruby-on-rails - 导入电子表格(excel),保留Ruby中的指数、下标、上标等特殊字符

我们正在使用 Roo Gem 将 Excel 工作表导入 Rails 应用程序中的数据库。但它忽略了像 5 4这样的单元格格式(上标、下标)、像1 / 2这样的数学符号,并将其导入为像 54 和 1/2 这样的纯文本。有什么方法可以导入这些单元格/文本的数据保留格式?

0 投票
0 回答
160 浏览

ruby-on-rails - Rails 应用程序中的 roo 和回形针

我正在开发一个 Rails 应用程序,我正在使用回形针上传文件,我想打开文件以使用 roo 进行处理。但是下面的代码对我不起作用。xls = Roo::Excel.new(@student.file.path)

有什么建议吗?

0 投票
2 回答
1920 浏览

ruby-on-rails-4 - Rails 重命名临时文件

我正在使用roo-rb来访问上传的文件。我的代码是这样的:

但是我遇到了问题,因为生成的临时文件没有扩展名,而且我遇到了这个异常:

.../AppData/Local/Temp/RackMultipart20150216-10192-13yn50s 不是 Excel-xlsx 文件

有没有办法重命名tempfile.path它以使其具有适当的扩展名(xlsx)?或者有没有更优雅的方法来解决这个问题?