newBook = Roo::Excelx.new('./test.xlsx')
给了我这个错误:
C:/Ruby193/lib/ruby/gems/1.9.1/gems/roo-1.13.2/lib/roo/excelx.rb:85:in `block in initialize': file ./test.xlsx does not exist (IOError)
为什么?如何用Ruby的roo
gem创建一个新的XLSX文件?
newBook = Roo::Excelx.new('./test.xlsx')
给了我这个错误:
C:/Ruby193/lib/ruby/gems/1.9.1/gems/roo-1.13.2/lib/roo/excelx.rb:85:in `block in initialize': file ./test.xlsx does not exist (IOError)
为什么?如何用Ruby的roo
gem创建一个新的XLSX文件?
Roo仅用于阅读Excel文件。我会推荐axlsx宝石。
它可以在纯Ruby按如下方式使用
require 'axslx'
package = Axlsx::Package.new
workbook = package.workbook
workbook.add_worksheet(name: 'Some Sheet Name') do |sheet|
sheet.add_row ["Header 1", "Header 2", "Header 3"]
sheet.add_row ["Data 1", "Data 2", "Data 3"]
end
package.serialize('./test.xlsx')
这将创建一个电子表格,看起来像
--------------------------------
| Header 1 | Header 2 | Header 3 |
--------------------------------
| Data 1 | Data 2 | Data 3 |
axlsx
提供几乎一切你可以在Excel做的,包括造型和有条件的造型。希望这可以帮助你。
太棒了!在添加行时,是否有一种方法可以指定我希望数据在哪个单元格中?例如:我只希望数据进入“标题2”列。我会怎么做? – Username
@Username是的,它会是'sheet.add_row [nil,“Data”]''add_row'将会创建一个新的+1行。传入的数组将作为行,所以'[nil,'Data']'将是一个空白单元格,然后是“数据”。 – engineersmnky
roo只允许读取Excel文件。您可以使用roo-google编写Google电子表格,或者您可以尝试使用axlsx gem(这是我的最爱) – engineersmnky
@engineersmnky Hm,'axlsx'好像是Rails的。我错了吗? – Username
没有axlsx可以用于纯红宝石。我一直使用它来运行出口和其他excel报告。我会发布一个快速的答案来展示给你。 – engineersmnky