Rails Axlsx Gem: Как переключаться между рабочими листами в рабочей книге
Я пишу в рабочую книгу, где на каждой итерации по массиву я добавляю новую рабочую таблицу в рабочую книгу.
a = [1,2,3,4]
p = Axlsx::Package.new
a.each do |arr|
p.workbook.add_worksheet(:name => "Name Sheet_#{arr}") do |sheet|
sheet.add_row(["#","Name", "Status"]
sheet.add_row(["1","ABC", 1]
sheet.add_row(["2","XYZ", 0]
end
p.workbook.add_worksheet(:name => "Address Sheet_#{arr}") do |sheet|
sheet.add_row(["#","Address", "Status"]
sheet.add_row(["1","NYC", 0]
sheet.add_row(["2","LA", 1]
end
#add a summary worksheet
end
Теперь я хочу добавить сводный лист, в котором будут записи о статусе 1 со всех листов. Сводная таблица будет добавлена только один раз (Axlsx все равно выдаст ошибку дубликата)
1: Может ли Axlsx открыть рабочий лист в рабочей книге и добавить к нему строки? 2: есть ли способ проверить, существует ли в рабочей тетради конкретный лист? (поиск по названию листа)
0 ответов
Вы можете открыть существующий лист, выбрав его по имени листа (которое должно быть уникальным).
1. Может ли Axlsx открыть рабочий лист в рабочей книге и добавить к нему строки?
p = Axlsx::Package.new
# Create the worksheet
p.workbook.add_worksheet(:name => "Name Sheet_1") do |sheet|
sheet.add_row ["#","Name", "Status"]
sheet.add_row ["1","ABC", 1]
sheet.add_row ["2","XYZ", 0]
end
# Select the worksheet
sheet = p.workbook.worksheets.select {|w| w.name == "Name Sheet_1"}.first
sheet.add_row [1, 2, 3]
2. Могу ли я проверить, существует ли в рабочей тетради конкретный лист? (поиск по названию листа)
p = Axlsx::Package.new
# Create the worksheet
p.workbook.add_worksheet(:name => "Name Sheet_1") do |sheet|
sheet.add_row ["#","Name", "Status"]
sheet.add_row ["1","ABC", 1]
sheet.add_row ["2","XYZ", 0]
end
# Search for the worksheet by name
p.workbook.worksheets.any? {|worksheet| worksheet.name == "Name Sheet_1"} # true
p.workbook.worksheets.any? {|worksheet| worksheet.name == "Name Sheet_2"} # false