我一直在使用spreadsheet
读取模板excel文件,修改它并为最终用户输出新文件。
据我所知,从文档电子表格中无法在生成的文档中输入或编辑公式。
但是,我的脚本的目的是从网站读取未定义数量的项目并将其输入电子表格,然后计算总计和小计。
最终用户(使用excel或libreoffice等)然后可以对项目数量稍作修改,同时总计更新(由于公式),因为它们已经习以为常。
我已经查看了声称能够输入公式的writeexcel
gem,但是我无法看到如何获取现有模板文件并对其进行修改以生成输出。我只能创建新的工作簿。
有任何提示吗?我不想使用Win32OLE。
答案 0 :(得分:1)
这非常困难;显然,用于处理Excel文件的所有Gems都缺少一些关键功能。
我可以想到两个解决这个问题的方法:
这是第二种方法的简单版本:
require 'rubygems'
require 'spreadsheet'
Dir.chdir(File.dirname(__FILE__))
# input file, contains this data
# Sheet0: headers + data (for this simple demo, we will generate the data on-the-fly)
# Sheet1: Formula '=SUM(Worksheet1.A2:A255) in cell A1
book = Spreadsheet.open 'in.xls'
sheet = book.worksheet 0
formulasheet = book.worksheet 1
# insert some input data (in a real application,
# this data would already be present in the input sheet)
rows = rand(20) + 1
(1..rows).each do |i|
sheet[i,0] = i
end
# add total at bottom of column C
sheet[rows+1,2] = formulasheet[0,0]
# write output file
book.write 'out.xls'
但是,如果
,这将失败