我有一个数据数组,我想要导出到xlsx文件。数组大小取决于输入数据,因此数组大小将发生变化,使用add_cell是有问题的。是否有任何方法向工作簿中添加数据行?
发布于 2022-08-10 10:32:02
我做了这样的事
require 'rubyXL'
new_array = [["some", "data", "here"], ["another", "data", "here"]]
workbook = RubyXL:workbook.new
worksheet = workbook[0]
new_array.each_with_index do |x, index|
col = *(0..(x.size - 1))
col.each do |i|
worksheet.add_cell(index, i, "#{x[i]}")
end
end
workbook.write("/path/to/file/file.xlsx")我希望它能帮助有类似问题的人。
发布于 2022-08-10 10:45:28
基于你的自我回答:我认为你通过使用神秘的变量名(new_array、x、index、col和i)使自己的生活更加艰难。我不得不多次重读你的代码,才能理解它,这绝不是一个好兆头。
在这里,我用更清晰的变量名称重写了它,正如您所看到的,逻辑实际上也可以简化一点!(当变量名都很神秘时,这一点就不那么明显了。)
require 'rubyXL'
spreadsheet_data = [["some", "data", "here"], ["another", "data", "here"]]
workbook = RubyXL:workbook.new
worksheet = workbook[0]
spreadsheet_data.each_with_index do |spreadsheet_row, row_number|
spreadsheet_row.each_with_index do |spreadsheet_value, column_number|
worksheet.add_cell(row_number, column_number, spreadsheet_value)
end
end
workbook.write("/path/to/file/file.xlsx")https://stackoverflow.com/questions/73303701
复制相似问题