1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python设置单元格宽度_【部分解决】openpyxl的excel设置列宽自适应+设置行高

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

时间:2019-04-16 15:11:56

相关推荐

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 = "很长的值很长的值很长的值测试列宽"

效果:

【后记 0510】

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

想要去增加行高:

通过:

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。