python - 使用 openpyxl 更改整个 Excel 工作表的列宽
问题描述
我想更改我的 excel 文件中多张工作表的所有列宽。我在其他帖子中发现的是关于更改一列的宽度。我怎样才能做到这一点?
这是我尝试但失败的方法:
wb = openpyxl.load_workbook('my_file.xlsx')
for sheet in wb.worksheets:
for column in sheet.columns:
sheet.column_dimensions[column].width = 50
解决方案
嗨,您可以使用以下代码构建动态单元格大小,但也可以用于您的目的
column_widths = []
for row in data:
for i, cell in enumerate(row):
if len(column_widths) > i:
if len(cell) > column_widths[i]:
column_widths[i] = 50
else:
column_widths += [50]
for i, column_width in enumerate(column_widths):
worksheet.column_dimensions[get_column_letter(i+1)].width = column_width
推荐阅读
- python-3.x - Pandas DataFrame:使用 0 和 1 创建类似矩阵
- php - 屏蔽自动递增的主键
- swift - 为什么不同结构实例的内存地址不会改变?
- ruby-on-rails - 如何在不修改其表的情况下将属性添加到另一个模型?
- javascript - Woocommerce“购物车中的商品”显示为“0 商品”需要将其显示为“0” - 需要删除“商品”一词
- vue.js - Firefox 无缘无故在 Vue 应用上使用深色主题
- mysql - 我需要为表中的字段设置什么数据类型,以限制一组选项中的值?
- karate - afterScenario 钩子上的 karate.log(args) 未嵌入到 surefire json 文件中
- javascript - 如何使用带有 Socket.IO 的轮询器向每个人发送
- wordpress - 如何在不破坏 WordPress 的情况下使用 .htaccess 向 URL 添加参数