ruby - 使用 roo gem 在 ruby​​ 中写入 excel 文件

标签 ruby ruby-on-rails-3 excel spreadsheet

我正在使用 Roo gem 解析 Excel 和 Excelx 文件。但我不确定如何写入这些文件。 set_value(row, column, text) 方法无效。

代码

@oo = Excelx.new('tes.xlsx')
@oo.default_sheet = @oo.sheets.first

def return_column
  keywords = ["website", "url"]
  keywords.each do |keyword|
  1.upto(@oo.last_column) do |n|
  data = @oo.cell(1, n)
  return n if data.downcase=~/#{keyword}/i
end
end
end

def return_rows
  n = return_n
  2.upto(@oo.last_row) do |row|
  data = @oo.cell(row, n)
  stack << data 
 end
end

def appender
  @oo.set_value(1,11, "hey")
end

 appender

我得到的错误信息是

 /.rvm/gems/ruby-1.8.7-p352/gems/roo-1.10.1/lib/roo/generic_spreadsheet.rb:441:in `method_missing': private method `set_value' called for #<Excelx:0x101221f08> (NoMethodError)
from /Users/bhushan/.rvm/gems/ruby-1.8.7-p352/gems/roo-1.10.1/lib/roo/excelx.rb:168:in `method_missing'
from parser.rb:32:in `appender'
from parser.rb:35

最佳答案

这里没有真正回答如何使用 Roo 执行此操作的问题,因此我将添加我刚刚在我们的应用程序中测试过的解决方案。

Roo 最近添加了编辑单元格的功能:https://github.com/roo-rb/roo/blob/master/lib/roo/csv.rb#L42

你可以这样使用它:

sheet.set_value(1, 5, 'TEST', nil) # to set the 1st row, 5th column to the string 'TEST'

注意事项:

  • 函数中未使用最后一个参数 nil 但没有默认值,因此它是必需的。
  • 这仅在 2.7.0 版本中添加。

关于ruby - 使用 roo gem 在 ruby​​ 中写入 excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8493717/

相关文章:

ruby-on-rails - 首次启动Rails “Please install mysql2 adapter”

ruby-on-rails - 在 ROR 中为 JSON 处理函数添加 XML 支持

ruby-on-rails - 如何使用 rspec 和 factory girl 创建具有特定 id 的模型

ruby-on-rails - JSON序列化中应包含的自定义模型方法

vba - Range.Calculate 不更新单元格中的值

excel - 当键列(具有引用值的列)不在最左侧时查找 Excel 数据

ruby-on-rails - 大型 Rails 应用程序启动时间

jquery - Rails escape_javascript 和 remotipart

ruby-on-rails - 如何使用 Koala 从 Facebook 登录创建 Rails 应用程序用户?

html - VBA:选中单选按钮后使隐藏字段可见