上一篇
Python openpyxl教程:设置Excel行高与列宽 | Python自动化办公指南
- Python
- 2025-08-16
- 843
Python openpyxl教程:设置Excel行高与列宽
使用openpyxl库自动化Excel格式设置
为什么需要设置Excel行高和列宽?
在Excel数据处理自动化中,格式设置是提升可读性的关键步骤:
- 改善数据可读性和美观度
- 确保内容完整显示
- 突出关键信息
- 创建专业报表
- 自动化重复性格式设置任务
Python的openpyxl库提供了强大的Excel文件操作能力,包括行高和列宽的精确设置。
安装openpyxl
在开始之前,请确保已安装openpyxl库:
pip install openpyxl
基础操作:设置行高
设置单行高度
from openpyxl import Workbook
# 创建工作簿和工作表
wb = Workbook()
ws = wb.active
# 设置第一行高度为30(单位:点)
ws.row_dimensions[1].height = 30
# 保存文件
wb.save("row_height_example.xlsx")
设置多行高度
# 设置多行高度
for row in range(5, 15):
ws.row_dimensions[row].height = 20
# 设置标题行高度
ws.row_dimensions[1].height = 40
基础操作:设置列宽
设置单列宽度
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# 设置A列宽度为20(单位:字符)
ws.column_dimensions['A'].width = 20
wb.save("column_width_example.xlsx")
设置多列宽度
# 设置B到D列宽度
for col in ['B', 'C', 'D']:
ws.column_dimensions[col].width = 15
# 设置第一列宽度
ws.column_dimensions['A'].width = 25
实用技巧:自动调整行高列宽
根据内容自动调整列宽
openpyxl没有内置的自动调整功能,但可以模拟:
def auto_adjust_columns(ws):
for column in ws.columns:
max_length = 0
column_letter = column[0].column_letter
for cell in column:
try:
if len(str(cell.value)) > max_length:
max_length = len(str(cell.value))
except:
pass
adjusted_width = (max_length + 2) * 1.2
ws.column_dimensions[column_letter].width = adjusted_width
# 使用函数
auto_adjust_columns(ws)
综合示例
创建员工信息表并设置格式:
from openpyxl import Workbook
from openpyxl.styles import Font
# 创建工作簿
wb = Workbook()
ws = wb.active
ws.title = "员工信息"
# 添加标题行
headers = ["ID", "姓名", "部门", "职位", "入职日期"]
ws.append(headers)
# 添加数据
data = [
[101, "张三", "技术部", "工程师", "2020-03-15"],
[102, "李四", "市场部", "经理", "2019-11-22"],
[103, "王五", "财务部", "会计", "2021-05-30"]
]
for row in data:
ws.append(row)
# 设置行高
ws.row_dimensions[1].height = 30 # 标题行高度
for i in range(2, 5):
ws.row_dimensions[i].height = 22 # 数据行高度
# 设置列宽
ws.column_dimensions['A'].width = 8 # ID
ws.column_dimensions['B'].width = 12 # 姓名
ws.column_dimensions['C'].width = 15 # 部门
ws.column_dimensions['D'].width = 18 # 职位
ws.column_dimensions['E'].width = 12 # 入职日期
# 设置标题字体
for cell in ws[1]:
cell.font = Font(bold=True)
# 保存文件
wb.save("employee_data.xlsx")
最佳实践总结
- 行高单位是点(points),列宽单位是字符(characters)
- 设置行高:
ws.row_dimensions[行号].height = 值
- 设置列宽:
ws.column_dimensions['列字母'].width = 值
- 典型行高值:默认15,标题行25-40,数据行18-25
- 典型列宽值:ID列8-10,名称列12-15,描述列20-30,日期列12-15
- 结合字体样式和单元格对齐方式创建专业报表
本文由ZhanLiFa于2025-08-16发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://www.521pj.cn/20258252.html
发表评论