[306]python操作excel表格(xlrd/xlwt)
发布日期:2021-05-16 09:25:12 浏览次数:16 分类:精选文章

本文共 2848 字,大约阅读时间需要 9 分钟。

Python操作Excel文件:完整指南

Python是处理表格数据的强大工具,通过xlrd和xlwt库,可以方便地读取和写入Excel文件。处理复杂的文档如日期、合并单元格等,需要对这些库的高级功能有深入了解。以下是关于Python操作Excel文件的详细指南。

1.安装必要的库

首先,需要安装xlrd和xlwt库。使用pip进行安装:

pip install xlrd xlwt

注意事项:

  • xlrd用于读取Excel文件。
  • xlwt用于写入Excel文件。
  • 需要确保Python环境正确配置,如果使用PyCharm,需设置项目interpreter为Python 3.x。

2.读取Excel文件(xlrd库)

2.1 打开Excel文件

使用xlrd库打开Excel文件:

import xlrd
# 打开Excel文件
workbook = xlrd.open_workbook(r'F:\demo.xlsx')
2.2 获取工作表

获取所有工作表的名称:

print(workbook.sheet_names()) # 输出所有工作表名称
2.3 获取特定工作表

根据工作表索引获取工作表:

sheet = workbook.sheet_by_index(0) # 根据索引0获取第一个工作表
2.4 检查数据类型

获取单元格的数据类型:

cell = sheet.cell(1, 0)
print(cell.value) # 获取单元格值
print(cell.ctype) # 获取数据类型,如3表示日期
2.5 处理日期

如果单元格为日期:

cell = sheet.cell(2, 2)
date_value = xlrd.xldate_as_tuple(cell.value, workbook.datemode)
formatted_date = date(*date_value[:3]).strftime('%Y/%m/%d')
print(formatted_date)
2.6 处理合并单元格

读取合并单元格:

# 获取所有合并单元格的位置
merged_cells = workbook.sheet_by_index(0).merged_cells
for cell in merged_cells:
row_range, col_range = cell
# 获取合并单元格的值
cell_value = sheet.cell_value(*row_range, *col_range)
print(cell_value)

3.写入Excel文件(xlwt库)

3.1 创建工作簿和工作表

创建新的Excel文件:

import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('sheet1', cell_overwrite_ok=True)
3.2 设置单元格样式

创建自定义样式:

def set_style(name, height=220, bold=False):
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = name
font.bold = bold
style.font = font
return style
3.3 写入数据

写入数据:

# 写入标题行
row_data = ['业务', '状态', '北京', '上海', '广州', '深圳', '状态小计', '合计']
for i in range(len(row_data)):
sheet.write(0, i, row_data[i], set_style('Times New Roman', 220, True))
# 写入数据行
for i in range(1, 5):
for j in range(len(status)):
sheet.write(i + j, 1, status[j], set_style('Times New Roman', 220))
3.4 合并单元格

合并行或列:

# 合并特定行
sheet.write_merge(21, 21, 0, 1, '合计', set_style('Times New Roman', 220, True))
# 合并特定列
for i in range(0, len(column0)):
sheet.write_merge(i + 1, i + 1 + 3, 0, 0, column0[i], set_style('Arial', 220, True))

4.处理多个工作表

创建多个工作表并写入数据:

sheet2 = workbook.add_sheet('sheet2', cell_overwrite_ok=True)
sheet2.write_merge(9, 9, 2, 8, xlwt.Formula('HYPERLINK("http://www.cnblogs.com/zhoujie", "jzhou's blog")'), set_style('Arial', 300, True))

5.读取和写入CSV文件

5.1 读取CSV文件

读取CSV文件:

import csv
with open('test.csv', 'rb') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
5.2 写入CSV文件

写入CSV文件:

with open('test.csv', 'wb') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['Name', 'Age', 'Date'])
writer.writerows([
['Alice', 30, '2018-06-01'],
['Bob', 25, '2018-06-02']
])

6.优化和注意事项

  • 性能优化: 避免读取大文件时使用open_workbook而不是easyxf
  • 版本兼容性: 确保-xlrd和-xlwt版本与Python版本匹配。
  • 代码规范: 处理数据前清理数据,避免多线程同时操作Excel文件。

7.总结

Python通过xlrd和xlwt库,便于完成Excel文件的读取和写入任务。处理复杂数据时,理解数据类型和样式设置至关重要。对于处理大数据量或需要同时读写文件,使用xlutils库推荐。

上一篇:[307]python文本相似度计算
下一篇:[305]mysql1062错误:Duplicate entry '...' for key 'PRIMARY

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月18日 09时33分36秒