Rails Axlsx列宽和包装文本

使用Axlsx我的一些单元格设置为包装文本,这很好。 我遇到的问题是如何计算单元格的自动宽度。 看来发生了什么最初的数据是这样的:

cell line1 cell line2 cell line3 cell line4 cell line5 

哪个Axlsx使用将宽度设置为那么大。 但是,包装文本进来,并正确地设置单元格:

 cell line1 cell line2 cell line3 cell line4 cell line5 

它的高度然后设置正确显示所有五个值,但行宽仍然巨大。 有谁知道是否有办法让Axlsx自动调整单元格的大小,就像在Excel中双击单元格一样,自动调整宽度的大小? 当通过Axlsx添加到电子表格时正确设置Excel列的宽度似乎逃避,但我不能得到任何效果 – 不知道:widths属性存在了或工作?

我也一直玩column_widths以及如sheet.column_widths *30 。 有谁知道是否有办法强制所有列与此属性具有相同的宽度? 它似乎并不接受一个数组 – 只有用逗号分开的整数/浮点数/固定数,而只是将第一列设置为30的宽度。事实上,事先并不知道我将要有多less列使用(dynamic数据),所以我希望能够设置为自动调整所有的列到一定的宽度。

检查colum_widths函数,它通过传递参数进行迭代,并将许多(传递的参数数量)列宽设置为传递值。

所以,如果要将X列宽设置为Y ,则应将[Y]*x数组作为parameter passing给column_widths,并使用spalt spalt(*)运算符将此数组转换为参数列表。

在你的情况下,列的数量将变成dynamic的,所以你可以使用sheet.column_info.count来获取表格中的列数,如果你想设置所有列的宽度为30,那么你所需要做的就是,使用 – sheet.column_widths *([30]*sheet.column_info.count)添加数据集宽度后,