获取对现有工作簿的引用以进行操作
Obtaining a reference to an already existing workbook for manipulation
当 运行 我的脚本时,我应该如何获取对已经存在的 .xlsx 工作簿的引用?
我正在使用 Ruby gem Axlsx,这是我的代码:
require 'axlsx'
p = Axlsx::Package.new
wb_file = File.open("simple.xlsx", "a+")
wb = p.workbook(wb_file) # STICKING POINT: can't get a handle on an already existing workbook
# wb = p.workbook("simple.xls")
# worksheet = Worksheet.new(self, options)
sheet = p.workbook.sheet_by_name("Basic Worksheet")
sheet.add_row ["11", "22", "33"]
p.serialize('simple2.xlsx')
我遇到了这个异常:
ArgumentError: wrong number of arguments (1 for 0)
from /home/mindaugas/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/axlsx-2.0.1/lib/axlsx/package.rb:65:in `workbook'
from (irb):9
from /home/mindaugas/.rbenv/versions/2.2.1/bin/irb:11:in `<main>'
因为该方法不接受参数。
def workbook
@workbook || @workbook = Workbook.new
yield @workbook if block_given?
@workbook
end
如何获取现有工作簿以便对其进行操作?
我应该扩展 gem(做一些修改)吗?
也许可以通过某种方式将其分配给 @workbook
实例变量,这样它就不会 return 成为 Workbook.new
.
无法使用 Axlsx 库打开现有工作簿(来源:https://github.com/randym/axlsx/issues/283)。
还有另一个 Ruby 库支持编辑现有文件:https://github.com/weshatheleopard/rubyXL。
当 运行 我的脚本时,我应该如何获取对已经存在的 .xlsx 工作簿的引用?
我正在使用 Ruby gem Axlsx,这是我的代码:
require 'axlsx'
p = Axlsx::Package.new
wb_file = File.open("simple.xlsx", "a+")
wb = p.workbook(wb_file) # STICKING POINT: can't get a handle on an already existing workbook
# wb = p.workbook("simple.xls")
# worksheet = Worksheet.new(self, options)
sheet = p.workbook.sheet_by_name("Basic Worksheet")
sheet.add_row ["11", "22", "33"]
p.serialize('simple2.xlsx')
我遇到了这个异常:
ArgumentError: wrong number of arguments (1 for 0)
from /home/mindaugas/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/axlsx-2.0.1/lib/axlsx/package.rb:65:in `workbook'
from (irb):9
from /home/mindaugas/.rbenv/versions/2.2.1/bin/irb:11:in `<main>'
因为该方法不接受参数。
def workbook
@workbook || @workbook = Workbook.new
yield @workbook if block_given?
@workbook
end
如何获取现有工作簿以便对其进行操作?
我应该扩展 gem(做一些修改)吗?
也许可以通过某种方式将其分配给 @workbook
实例变量,这样它就不会 return 成为 Workbook.new
.
无法使用 Axlsx 库打开现有工作簿(来源:https://github.com/randym/axlsx/issues/283)。
还有另一个 Ruby 库支持编辑现有文件:https://github.com/weshatheleopard/rubyXL。