Создание файла xlsx с использованием roo gem - PullRequest
0 голосов
/ 28 сентября 2018

Я использовал 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 голосов
/ 28 сентября 2018

На самом деле, roo поддерживает оба, но проекты теперь разделены.

Чтобы получить поддержку xlsx, вам необходимо:

require 'roo'

Чтобы получить поддержку xls, вам необходимо:

require 'roo'
require 'roo-xls'

Вы не можете создать файл Excel электронной таблицы с roo, который специализируется на чтении такого файла.

Для чтения вам необходимо:

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)

Для получения дополнительной информации посетите robo'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")
...