Ruby 读取xls文件并在不丢失初始数据的情况下重新导出

Ruby 读取xls文件并在不丢失初始数据的情况下重新导出,ruby,ruby-on-rails-3,spreadsheet,export-to-excel,Ruby,Ruby On Rails 3,Spreadsheet,Export To Excel,我正在使用“电子表格”ruby gem生成xls文件。 我已经有了一个xls文件“MyFile.xls”,其中包含许多页:shu 01、shu 02、shu 03… 我想读取最后一张工作表的名称(sh_last_编号),并将一张名为“sh_last_编号+1”的新工作表添加到此文件(MyFile.xls)并在其上写入一些数据。 换句话说,我必须同时打开它(读取数据)和写入数据。 如果这个想法不能通过电子表格实现,那么他们的另一块宝石会更有效吗? 提前感谢。您完全可以使用电子表格gem来完成此操作

我正在使用“电子表格”ruby gem生成xls文件。

我已经有了一个xls文件“MyFile.xls”,其中包含许多页:shu 01、shu 02、shu 03… 我想读取最后一张工作表的名称(sh_last_编号),并将一张名为“sh_last_编号+1”的新工作表添加到此文件(MyFile.xls)并在其上写入一些数据。
换句话说,我必须同时打开它(读取数据)和写入数据。

如果这个想法不能通过电子表格实现,那么他们的另一块宝石会更有效吗?


提前感谢。

您完全可以使用电子表格gem来完成此操作。由于您使用的是excel文件,如果您使用的是旧版本,则可能需要gem的excel组件:

require 'spreadsheet' # You may need to require 'spreadsheet/excel'
那么,使用和编写页面就很简单了。要打开工作簿(包含多页的xls文件),请执行以下操作:

@workbook = Spreadsheet.open("MyFile.xls")
然后,要将工作表添加到已打开的工作簿中,只需执行以下操作:

new_sheet = "sh_#{@workbook.worksheets.size + 1}"
@worksheet = @workbook.create_worksheet(:name => new_sheet)
希望这有帮助

干杯,
Sean

谢谢Sean,出现了错误=>未定义的\u方法创建\u工作表。我偏离了另一个示例,我只能读取数据,而不能编写或添加其他数据。。。我在irb测试了它,它对我有效。您使用的是旧版本的gem吗?也许可以尝试:@worksheet=@workbook.add_-worksheet(“test”)如果您使用的是较旧版本的gem,请务必使用“电子表格/excel”,然后使用@worksheet=@workbook.add_-worksheet(“test”)您好,它可以工作,但是当我重新打开MyFile.xls时,没有添加任何工作表。