Tom*_*ond 3 excel ruby-on-rails axlsx
使用Axlsx,我的一些单元格被设置为包装文本,这非常有用.我遇到的问题是如何计算单元格的自动宽度.看起来最初发生的事情是这样的数据:
cell line1 cell line2 cell line3 cell line4 cell line5
Run Code Online (Sandbox Code Playgroud)
哪个Axlsx使用来设置宽度那么大.但随后包装文本进入并正确设置单元格:
cell line1
cell line2
cell line3
cell line4
cell line5
Run Code Online (Sandbox Code Playgroud)
然后正确设置高度以显示所有五个值,但行宽仍然很大.有没有人知道是否有办法让Axlsx自动调整单元格的大小,就好像你要在Excel中双击单元格使其自动调整宽度一样?通过Axlsx添加到电子表格时正确设置Excel列宽似乎是躲避但我无法让它产生任何影响 - 不确定该:widths属性是否存在或有效?
我也一直在玩column_widths,例如sheet.column_widths *30.有没有人知道是否有办法强制所有列与此属性具有相同的宽度?它似乎不接受一个数组 - 只有整数/浮点数/ fixnums用逗号分隔,并且*30只将第一列设置为30的宽度.我事先并不知道我将要有多少列使用(动态数据)所以我希望能够将其设置为仅将所有列自动调整为一定宽度.
检查colum_widths函数,迭代传递的参数并将多个(传递的参数数)列宽度设置为传递的值.
因此,如果要将X列宽度设置为Y,则应将[Y]*x数组作为参数传递给column_widths,并使用spalt(*)运算符将此数组转换为参数列表.
在您的情况下,列数将变为动态,因此您可以使用sheet.column_info.count获取工作表中的列数,如果要将所有列的宽度设置为30,那么您需要做的就是,在添加数据集之后宽度使用 -
sheet.column_widths *([30]*sheet.column_info.count)
| 归档时间: |
|
| 查看次数: |
4005 次 |
| 最近记录: |