我正在使用Axlsx创建excel文件。对于小数据集,它工作正常。但一旦数据集变大,它就会挂起。我在这个过程中运行了一段时间,它做了很多事情。xlsx问题:创建具有大量行的Excel表格
a = Axlsx::Package.new
book = a.workbook
book.add_worksheet(:name => "test") do |sheet|
input_array.each do |input_data|
...# covert input_data to row_data
sheet.add_row(row_data)
end
end
File.open("testfile", 'w') { |f| f.write(p.to_stream().read) }
我的input_array大小约为400,000,所以工作表有400,000行,相当大。它卡在p.to_stream().read
。任何帮助都会很棒。谢谢。
我得到这个错误:未定义的方法'use_autowidth ='为#(NoMethodError)。我正在使用axlsx-1.0.18。我经历了Axlsx源代码,它似乎没有定义use_autowidth。 –
user612308
2012-04-09 14:04:26
@ user612308是的,它被添加了[稍后](https://github.com/randym/axlsx/commit/26a8ad445d84b9dcb9fc36702ec761603a74ee20),并在1.1中发布。 – 2012-04-09 15:21:39
感谢纳什。尝试过,仍然是同样的问题。我认为问题不在于use_autowidth,它与如何实现to_stream()有关。现在,我没有很好的解决方案。我必须为我可以添加的行数设置一个限制。 – user612308 2012-04-10 08:28:43