python + excel 读写学习

本文介绍如何使用pyexcel库来打开、读取、修改并保存Excel文件,包括加载Excel文件、获取列名、修改数据及保存为新文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The tutorial for xlrd, xlwt and xlutils
http://pythonhosted.org/pyexcel/index.html
安装xlutils碰到问题:

使用easy_install xlutils安装时,提示:
NameError: name 'file' is not defined

解决办法:下载xlutils-1.7.1到本地解压后,编辑setup.py
将14行的file改成open,保存后进入cmd
执行:e:\xlutils-1.7.1>python setup.py install
安装成功

真是糟糕的体验,py3.4 & xlutils1.7.1不搭
xlutils里好多代码都是py2+的风格

对于xlrd和xlwt都有对应的xlrd3和xlwt3适用于py3+环境

想实现打开一个excel,读取某行某列数据,修改后,再存回去的功能看来只能换pyexcel了
easy_install pyexcel
easy_install pyexcel-xls #用于处理xls格式的文档

加载一个已知excel,获取列名

import pyexcel
import pyexcel.ext.xls

sheet = pyexcel.load("E:/Python/abc.xls", name_columns_by_row=1,sheetname='XX数据')

print(list(sheet.colnames))

#输出:
#['编号',  '模型', '日期', '负责人', '备注']

excel样例:
这里写图片描述

输出:
[‘编号’, ‘模型’, ‘日期’, ‘负责人’, ‘备注’]

sheet.column['编号']
#输出:
#['XXX报表', 1.0, 2.0]
sheet.column["负责人"] = ['', '张龙', '赵虎']
'''
修改后:
+-------+-----+----------+-----+-----+
|  编号  | 模型  |    日期   | 负责人| 备注  |
+-------+-----+----------+-----+-----+
| 1     | 模型1 | 2015-05-15 | 张龙  | 备注1 |
+-------+-----+----------+-----+-----+
| 2     | 模型2 | 2016/05/15 | 赵虎  | 备注2 |
+-------+-----+----------+-----+-----+
'''
#似乎只能另存为其他名称文件
sheet.save_as('E:/Python/abc20150515.xls')

修改后:
这里写图片描述

### Python 操作 Excel 的常用库 #### openpyxl 库 `openpyxl` 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。此库提供了丰富的功能来处理 Excel 文件中的各种元素,如单元格、工作表等。对于希望专注于 .xlsx 格式的开发者来说是一个不错的选择[^1]。 ```python from openpyxl import Workbook, load_workbook # 创建一个新的工作簿对象并保存到文件 wb = Workbook() ws = wb.active ws.title = "Sample Sheet" ws['A1'] = 'Hello' wb.save('sample.xlsx') # 加载现有的工作簿文件进行修改 workbook = load_workbook(filename='example.xlsx') sheet_ranges = workbook['SheetName'] print(sheet_ranges['A1'].value) ``` #### pandas 库 `pandas` 提供了强大的数据结构以及数据分析工具,可以方便地导入导出 Excel 表格,并且能够很好地与其他科学计算包集成在一起。它不仅限于简单的读写操作,还可以执行复杂的数据清洗和分析任务。 ```python import pandas as pd # 将 DataFrame 导出至 Excel 文件 df = pd.DataFrame({'Column1': ['Value1', 'Value2'], 'Column2': [1, 2]}) with pd.ExcelWriter('output.xlsx') as writer: df.to_excel(writer, sheet_name='Sheet1', index=False) # 从 Excel 文件加载成 DataFrame 对象 dataframe = pd.read_excel(io='input.xlsx', sheet_name='Sheet1') print(dataframe.head()) ``` #### xlwings 库 `xlwings` 实现了双向交互——既可以在 Excel 中调用 Python 脚本也可以通过 Python 来控制 Excel 应用程序的行为;支持多种格式(包括 `.xls`,`.xlsx`) 和 VBA 功能;并且很容易与 NumPy/Pandas 结合使用以增强其能力[^3]。 ```python import xlwings as xw app = xw.App(visible=True) book = app.books.open(r'path\to\your_file.xlsx') sheet = book.sheets[0] cell_value = sheet.range('A1').value print(cell_value) new_sheet = book.sheets.add(name="New_Sheet_Name") new_sheet.range('B2').value = ["Item", "Quantity"] book.save() app.quit() ``` 除了上述提到的主要三个库之外还有其他一些专门针对特定需求而设计的小型库,比如 `xlrd`(仅适用于旧版本 xls),`xlwt`(主要用于创建新的 xls 文件), `XlsxWriter`(侧重于高效写出大量数据). 用户可以根据实际项目的需求选择合适的解决方案.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值