当前位置: 技术文章>> 如何用 Python 实现 Excel 文件读写?

文章标题:如何用 Python 实现 Excel 文件读写?
  • 文章分类: 后端
  • 5242 阅读
在Python中处理Excel文件是一项常见的任务,无论是数据分析、自动化报告还是数据备份,都离不开对Excel文件的读写操作。Python通过几个强大的库支持这一功能,其中最流行的是`openpyxl`(用于处理`.xlsx`文件)和`xlrd`、`xlwt`(分别用于读取和写入`.xls`文件,但注意`xlrd`从版本2.0开始不再支持`.xls`文件的写入,且对`.xlsx`的支持有限)。由于`.xlsx`格式在现代办公环境中更为普遍,以下我们将重点介绍如何使用`openpyxl`库来实现Excel文件的读写操作。 ### 安装openpyxl 首先,确保你的Python环境中安装了`openpyxl`库。如果未安装,可以通过pip命令轻松安装: ```bash pip install openpyxl ``` ### 读取Excel文件 使用`openpyxl`读取Excel文件主要涉及加载工作簿(Workbook)、选择工作表(Worksheet)以及遍历单元格(Cell)等步骤。 #### 示例:读取Excel文件 假设我们有一个名为`example.xlsx`的Excel文件,现在我们要读取其中的数据。 ```python from openpyxl import load_workbook # 加载工作簿 wb = load_workbook(filename='example.xlsx') # 选择工作表,这里以第一个工作表为例 ws = wb.active # 或者使用 ws = wb['Sheet1'] 指定工作表名 # 遍历工作表中的每一行和每一列 for row in ws.iter_rows(values_only=True): # values_only=True 表示只获取单元格的值 print(row) # 或者遍历每一列 for col in ws.iter_cols(values_only=True): print(col) # 读取特定单元格的值 cell_value = ws['A1'].value print(cell_value) # 关闭工作簿(可选,因为Python的垃圾回收机制会自动处理) # wb.close() ``` ### 写入Excel文件 写入Excel文件同样简单,你可以创建一个新的工作簿,添加工作表,然后向单元格写入数据。 #### 示例:写入Excel文件 ```python from openpyxl import Workbook # 创建一个新的工作簿 wb = Workbook() # 选择默认的工作表,或者添加新的工作表 ws = wb.active ws.title = "新工作表" # 向单元格写入数据 ws['A1'] = '码小课' ws.append([1, 2, 3]) # 在下一行追加数据 # 也可以一次性写入多行数据 data = [ ['姓名', '年龄', '职业'], ['张三', 28, '程序员'], ['李四', 32, '设计师'] ] for row in data: ws.append(row) # 保存工作簿 wb.save("new_example.xlsx") ``` ### 进阶操作 #### 格式化单元格 `openpyxl`允许你设置单元格的字体、颜色、边框等样式。 ```python from openpyxl.styles import Font, Color, Border, Side # 设置字体和颜色 font = Font(name='Calibri', size=11, bold=True, italic=False, vertAlign=None, underline='none', strike=False, color='FF0000') # 设置边框 thin = Side(border_style="thin", color="000000") border = Border(top=thin, left=thin, right=thin, bottom=thin) # 应用样式 ws['A1'].font = font ws['A1'].border = border ``` #### 公式和图表 `openpyxl`还支持在单元格中插入公式和创建图表。 ```python # 插入公式 ws['A3'] = "=SUM(A1:A2)" # 创建图表(这里仅展示基本框架,具体实现可能较复杂) from openpyxl import Workbook from openpyxl.chart import BarChart, Reference wb = Workbook() ws = wb.active # 假设已经有一些数据 rows = [ ["Number", "Batch 1", "Batch 2"], [2, 10, 30], [3, 40, 60], [4, 50, 70], [5, 20, 10], [6, 10, 40], [7, 50, 30], ] for row in rows: ws.append(row) # 创建一个柱状图 chart = BarChart() data = Reference(ws, min_col=2, min_row=1, max_row=7, max_col=3) cats = Reference(ws, min_col=1, min_row=2, max_row=7) chart.add_data(data, titles_from_data=True) chart.set_categories(cats) ws.add_chart(chart, "D1") wb.save("chart_example.xlsx") ``` ### 注意事项 - 在处理大型Excel文件时,注意内存使用,避免一次性加载整个工作簿到内存中。 - 写入文件时,确保文件路径正确,且Python有权限写入该路径。 - 格式化、公式和图表等高级功能可能需要详细阅读`openpyxl`的官方文档。 ### 总结 通过`openpyxl`库,Python能够轻松实现Excel文件的读写操作,包括基本的单元格读写、格式化、公式计算以及图表的创建等。这些功能使得Python成为处理Excel数据的强大工具,尤其适用于自动化数据处理和报告生成的场景。在码小课网站上,你可以找到更多关于Python处理Excel文件的教程和示例,帮助你更深入地掌握这一技能。
推荐文章