Python xlwt库访问工作表完整教程 | Python Excel操作指南
- Python
- 2025-07-24
- 1130
Python xlwt库访问工作表完全指南
掌握Excel工作表创建、访问和操作的实用技巧
xlwt库简介
xlwt是一个用于创建和写入Microsoft Excel文件的Python库,特别适合处理.xls格式的文件(Excel 97-2003格式)。
主要特点:
- 支持创建工作表、写入数据和设置格式
- 简单易用的API,学习曲线平缓
- 不需要安装Excel即可使用
- 跨平台兼容性(Windows、Linux、macOS)
注意: xlwt仅支持创建和写入Excel文件,不支持读取或修改现有文件。对于读取操作,可以考虑使用xlrd库。
安装xlwt库
使用pip命令安装xlwt非常简单:
pip install xlwt
验证安装:
import xlwt print(xlwt.__version__) # 输出安装的xlwt版本
创建工作簿和工作表
使用xlwt创建Excel文件的第一步是创建工作簿(Workbook)对象:
import xlwt # 创建Workbook对象 workbook = xlwt.Workbook(encoding='utf-8')
添加工作表使用add_sheet()
方法:
# 添加一个名为"员工数据"的工作表 sheet1 = workbook.add_sheet('员工数据') # 添加第二个工作表 sheet2 = workbook.add_sheet('部门统计')
每个工作表都是一个独立的Sheet对象,可以分别进行操作。
访问工作表的方法
在xlwt中,访问工作表主要有两种方式:
1. 创建时保存引用
在创建工作表时保存返回的Sheet对象:
# 创建时保存引用 employee_sheet = workbook.add_sheet('员工信息') department_sheet = workbook.add_sheet('部门信息') # 后续使用保存的引用访问 employee_sheet.write(0, 0, '姓名') department_sheet.write(0, 0, '部门名称')
2. 通过工作表名称访问
虽然xlwt没有直接提供按名称访问的方法,但可以通过以下方式实现:
# 创建多个工作表 workbook.add_sheet('销售数据') workbook.add_sheet('库存数据') # 通过名称访问特定工作表 def get_sheet_by_name(workbook, sheet_name): for i in range(workbook._Workbook__worksheets.__len__()): sheet = workbook._Workbook__worksheets[i] if sheet.name == sheet_name: return sheet return None # 获取"销售数据"工作表 sales_sheet = get_sheet_by_name(workbook, '销售数据') if sales_sheet: sales_sheet.write(0, 0, '产品名称')
最佳实践: 建议在创建工作表时保存引用,特别是当工作表数量不多时,这样代码更简洁高效。
向工作表写入数据
使用write()
方法向工作表写入数据:
# 基本写入操作 sheet.write(row, col, value) # 示例:在A1单元格写入标题 sheet.write(0, 0, '员工信息表') # 在B2单元格写入数字 sheet.write(1, 1, 42) # 在C3单元格写入浮点数 sheet.write(2, 2, 3.14159) # 在D4单元格写入日期 import datetime sheet.write(3, 3, datetime.datetime.now())
批量写入数据示例:
# 表头 headers = ['ID', '姓名', '部门', '工资'] for col, header in enumerate(headers): sheet.write(0, col, header) # 示例数据 employees = [ [1, '张三', '技术部', 12000], [2, '李四', '市场部', 9800], [3, '王五', '财务部', 11500], ] # 写入数据行 for row, employee in enumerate(employees, start=1): for col, value in enumerate(employee): sheet.write(row, col, value)
设置单元格样式
xlwt允许通过XFStyle对象自定义单元格样式:
# 创建样式对象 style = xlwt.XFStyle() # 设置字体 font = xlwt.Font() font.name = '微软雅黑' font.bold = True font.height = 280 # 14pt * 20 style.font = font # 设置背景颜色 pattern = xlwt.Pattern() pattern.pattern = xlwt.Pattern.SOLID_PATTERN pattern.pattern_fore_colour = xlwt.Style.colour_map['yellow'] style.pattern = pattern # 设置边框 borders = xlwt.Borders() borders.left = xlwt.Borders.THIN borders.right = xlwt.Borders.THIN borders.top = xlwt.Borders.THIN borders.bottom = xlwt.Borders.THIN style.borders = borders # 应用样式 sheet.write(0, 0, '带样式的标题', style)
常用样式设置速查:
样式类型 | 属性 | 常用值 |
---|---|---|
字体 | bold, italic, underline | True/False |
对齐 | alignment.horz | xlwt.Alignment.HORZ_CENTER |
边框 | borders.left/right/top/bottom | xlwt.Borders.THIN/MEDIUM/THICK |
背景色 | pattern.pattern_fore_colour | xlwt.Style.colour_map中的颜色名 |
多工作表操作
实际应用中经常需要操作多个工作表:
# 创建多个工作表 summary_sheet = workbook.add_sheet('汇总') details_sheet = workbook.add_sheet('明细') # 在汇总表写入标题 summary_sheet.write(0, 0, '部门月度汇总表') # 在明细表写入标题 details_sheet.write(0, 0, '详细交易记录') # 在多个工作表之间共享数据 departments = ['技术部', '市场部', '财务部', '人力资源部'] # 写入汇总表 for i, dept in enumerate(departments): summary_sheet.write(i+1, 0, dept) summary_sheet.write(i+1, 1, 0) # 初始化为0 # 写入明细表 details_sheet.write(1, 0, '2023-06-01') details_sheet.write(1, 1, '技术部') details_sheet.write(1, 2, 15000)
保存Excel文件
完成所有操作后,使用save()
方法保存工作簿:
# 保存为.xls文件 workbook.save('公司数据.xls')
完整示例:
import xlwt import datetime # 创建工作簿 workbook = xlwt.Workbook(encoding='utf-8') # 添加工作表 employee_sheet = workbook.add_sheet('员工信息') department_sheet = workbook.add_sheet('部门信息') # 设置日期格式 date_style = xlwt.XFStyle() date_style.num_format_str = 'YYYY-MM-DD' # 向员工表写入数据 headers = ['ID', '姓名', '入职日期', '工资'] for col, header in enumerate(headers): employee_sheet.write(0, col, header, xlwt.easyxf('font: bold on')) employees = [ [1, '张三', datetime.date(2020, 5, 15), 15000], [2, '李四', datetime.date(2019, 8, 22), 13800], [3, '王五', datetime.date(2021, 3, 10), 12500], ] for row, emp in enumerate(employees, start=1): for col, value in enumerate(emp): if isinstance(value, datetime.date): employee_sheet.write(row, col, value, date_style) else: employee_sheet.write(row, col, value) # 向部门表写入数据 department_sheet.write(0, 0, '部门ID') department_sheet.write(0, 1, '部门名称') department_sheet.write(1, 0, 101) department_sheet.write(1, 1, '技术研发部') department_sheet.write(2, 0, 102) department_sheet.write(2, 1, '市场运营部') # 保存文件 workbook.save('company_data.xls') print("Excel文件已成功生成!")
xlwt的局限性
虽然xlwt非常实用,但也有一些限制需要注意:
- 仅支持.xls格式(Excel 97-2003),不支持.xlsx
- 最大行数限制为65536行,最大列数限制为256列
- 无法读取或修改现有Excel文件
- 不支持Excel的某些高级功能(如图表、数据透视表等)
替代方案: 如果需要处理.xlsx文件或需要更多功能,可以考虑以下库:
- openpyxl - 读写.xlsx文件
- xlsxwriter - 创建.xlsx文件(功能丰富)
- pandas - 高级数据处理,内置Excel读写功能
总结
本教程详细介绍了如何使用Python的xlwt库访问和操作Excel工作表,包括:
- 创建和访问工作表的多种方法
- 向工作表写入不同类型的数据
- 设置单元格样式以美化输出
- 多工作表操作技巧
- 保存最终Excel文件
xlwt是处理.xls格式文件的强大工具,虽然有一些限制,但对于基本的Excel文件生成需求来说,它仍然是一个简单高效的选择。
本文由DuanmuZhen于2025-07-24发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20256349.html
发表评论