4

我正在使用spreadsheetgem 来读取和写入数据到 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.

4

1 回答 1

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 的 github页面

创建 excel 文件

要编写 Excel 文件,我会推荐Axlsx gem。我已经有一段时间没有使用它了,但它曾经非常好。

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")
于 2018-09-28T08:09:03.697 回答