python设置单元格宽度_【部分解决】openpyxl的excel设置列宽自适应+设置行高

折腾:

后,发现生成的excel是:

其中,表头的宽度没有像另外一个手动创建并设置后的,去自动适应宽度:

openpyxl column width auto

好像有个auto_size

去找找看

openpyxl column_dimensions

“auto_size

Aliases can be used when either the desired attribute name is not allowed or confusing in Python (eg. “type”) or a more descriptve name is desired (eg. “underline” for “u”)”

看不懂

但是看到有个:

bestFit

“# 第2行行高sheet.row_dimensions[2].height = 40# C列列宽sheet.column_dimensions[‘C’].width = 30”

实在不行,就直接设置对应行高和列宽

openpyxl column_dimensions auto size

去试试:

结果好像是生效了一半:

现在是隐藏掉了该列:

但是双击后,可以显示出来:

那去试试:

以及参考:

感觉best fit好像是我们要的效果:

自动根据内容匹配宽度?

结果试了半天:

# ws.column_dimensions["D"].auto_size = True

# ws.column_dimensions["D"].bestFit = False

# ws.column_dimensions["D"].collapsed = True

ws.column_dimensions["L"].auto_size = True

ws.column_dimensions["L"].bestFit = True

ws.column_dimensions["L"].collapsed = False

要么是:

直接把对应的列隐藏了

要么是不起效果。

【总结】

openpyxl的sheet中的column_dimensions的auto_size,bestFit,collapsed,都无法启到此处想要的效果:自动设置列宽。

最后只能是单独设置宽度了:

nameCell = ws["A1"]

nameCell.value = "名称"

ws.merge_cells(‘A1:A2’)

ws.column_dimensions["A"].width = 15

isSeriesCell = ws["D1"]

isSeriesCell.value = "是否是系列"

ws.merge_cells(‘D1:D2’)

# ws.column_dimensions["D"].auto_size = True

# ws.column_dimensions["D"].bestFit = False

# ws.column_dimensions["D"].collapsed = True

ws.column_dimensions["D"].width = 10

fitAgeRangeCell = ws["L1"]

fitAgeRangeCell.value = "适用年龄层(年)"

ws.merge_cells(‘L1:L2’)

# ws.column_dimensions["L"].auto_size = True

# ws.column_dimensions["L"].bestFit = True

# ws.column_dimensions["L"].collapsed = False

ws.column_dimensions["L"].width = 14

# ws["L3"].value = "很长的值很长的值很长的值测试列宽"

效果:

【后记 20180510】

表头的部分内容由于行高太低而不显示了:

想要去增加行高:

通过:

ws.column_dimensions["A"].width = 20

猜测到有:

row_dimensions

但是要去找找是否有

-》

def _copy_dimensions(self):

for attr in (‘row_dimensions’, ‘column_dimensions’):

以及具体如何使用

-》

>>> row = ws.row_dimensions[1]

果然是猜测的是,直接数字就表示行

去试试

【总结】

然后用代码:

ws.row_dimensions[1].height = 30

ws.row_dimensions[2].height = 20

达到了增加行高,内容完全显示的效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值