我当时使用spreadsheet
gem来读写数据到xls文件。这很容易。现在,我需要处理xlsx文件,我想spreadsheet
不支持xlsx文件。
我发现roo
个gem支持xlsx
。
要使用xls
创建spreadsheet
文件,就像
book = Spreadsheet::Workbook.new
sheet = book.create_worksheet
sheet.row(0).concat %w[col1 col2 col3 col4]
阅读
book1 = Spreadsheet.open('Data/CA.xls')
read_sheet = book1.worksheet('sheet')
如何使用roo
创建和阅读。
答案 0 :(得分:0)
实际上,roo
两者都支持,但是现在项目已拆分。
要获得xlsx支持,您需要:
require 'roo'
要获得xls支持,您需要同时具备以下条件:
require 'roo'
require 'roo-xls'
您无法使用roo
创建电子表格excel文件,因为它专门用于读取这样的文件。
要阅读,您需要:
require 'roo'
xlsx = Roo::Spreadsheet.open('./read.xlsx')
# get basic information about spreadsheet
xlsx.info
# get sheets
xlsx.sheets
# => ['Wow', 'greet1', 'greet2']
# get first row in the sheet Wow
xlsx.sheet('Wow').row(1)
有关更多信息,请访问roo's github页
要编写Excel文件,我建议Axlsx 宝石。我已经有一段时间没有使用它了,但是它曾经非常不错。
在github上有大量示例-example.rb。
它们比我在这里提出的要好,所以我将其中之一发布:
编辑-缺少输出文件
require 'axlsx'
p = Axlsx::Package.new
wb = p.workbook
## A Simple Workbook
if examples.include? :basic
wb.add_worksheet(:name => "Basic Worksheet") do |sheet|
sheet.add_row ["First Column", "Second", "Third"]
sheet.add_row [1, 2, 3]
sheet.add_row [' preserving whitespace']
end
end
p.serialize("example.xlsx")