使用RubyXL编写xlsx文件需要花费很长时间处理大量的单元

我在我的Rails应用程序中使用RubyXL gem生成4-5张工作簿。我们正在生成大量的单元格(超过5000(146 * 26))的Excel。 写入该文件需要20多分钟,并消耗大量内存。 其中一张表具有dynamic数据,其中有一些样式,如边界的背景颜色,字体颜色,粗体文本等。我​​正在使用此代码段。

workbook = RubyXL::Workbook.new() sheet = workbook.worksheets[0] cell = sheet.add_cell(row, col, text) cell.change_fill('#fff') cell.change_font_color('#000') cell.change_font_bold(true) 

我试图通过删除一些边框样式来减less时间,从而减less了书面的时间,但仍然花费很长时间。 所以我删除了上面提到的其余样式。 之后,现在约1分钟左右。

你能否build议我将样式应用于单元格,以便花费更less的时间,而不会影响性能。

我会很乐意回答任何关于这个问题或者如果我错过了任何问题。

您可以更改整个列和行而不是每个单元格的单元格。 这会快很多。 我想这个function有一个小故障,因为更改后的列宽设置为0,所以不可见,但可以重置操作后的宽度。

 sheet.change_column_fill(0, '0ba500') sheet.change_column_font_color(1, '0ba53d') sheet.change_column_width(0 ,10) sheet.change_column_width(1 ,10)