使用Roo gem创建XLSX文件

时间:2018-09-28 07:34:31

标签: ruby roo-gem

我当时使用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创建和阅读。

1 个答案:

答案 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文件

要编写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")