openpyxl自适应列宽
时间: 2023-09-05 19:14:15 浏览: 60
在使用openpyxl库处理Excel文件时,可以通过调用`column_dimensions`属性来设置列的宽度。为了使列宽适应内容长度,你可以使用`best_fit`方法。以下是一个简单的示例:
```python
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
# 创建一个新的工作簿
wb = Workbook()
# 选择活动工作表
ws = wb.active
# 设置一些示例数据
data = [
["Name", "Age", "City"],
["John Doe", 30, "New York"],
["Jane Smith", 25, "Los Angeles"],
["Bob Johnson", 35, "Chicago"]
]
# 将数据写入单元格
for row in data:
ws.append(row)
# 自适应列宽
for column in ws.columns:
max_length = 0
column_letter = get_column_letter(column[0].column)
for cell in column:
try:
if len(str(cell.value)) > max_length:
max_length = len(cell.value)
except:
pass
adjusted_width = (max_length + 2) * 1.2
ws.column_dimensions[column_letter].width = adjusted_width
# 保存工作簿
wb.save("output.xlsx")
```
在上面的示例代码中,我们首先创建了一个新的工作簿,然后选择活动工作表。接下来,我们将一些示例数据写入单元格。然后,通过遍历每一列并计算最大长度,我们确定每一列的适应宽度。最后,我们保存工作簿到名为"output.xlsx"的文件中。这样,列宽就会根据内容长度进行自适应调整。