目录
Python读写excel文件
Python标准库中没有读写excel的模块。
Python读取excel的第三方模块有多种,比如xlrd、xlwt、xlutils、xlwings、openpyxl、xlsxwriter、win32com、DataNitro、pandas等。
它们各有优缺点,这里不展开,只讲openpyxl第三方模块,它可以读写excel。
excel表格数据内容如下。
number name age
1 zhangsan 18
2 wangwu 17
3 xiaofang 17
4 tiantian 18
Python读写excel文件
openpyxl第三方模块的安装
pip install openpyxl
或
pip install openpyxl -i https://pypi.douban.com/simple
Excel 表格基本术语
- workbook:工作簿
- sheet:工作表,一个工作簿中包含多张工作表
- cell:单元格
- row:行,以数字表示,从1开始
- column:列,以字母表示,从A开始
openpyxl主要方法
这里的方法可以结合后面示例来理解。
openpyxl读取excel
- load_workbook("student.xlsx"):打开工作簿,得到工作簿对象
- xlbook["Sheet1"]:得到工作表对象
- sht1.cell(1,1).value:得到单元格中的值,此处是第一个单元格(1,1)。序号没有0,从1开始。
- sht1.max_row:得到最大行数
- sht1.max_column:得到最大列数
openpyxl修改excel
- sht1.cell(sht1.max_row+1,3).value=22:修改单元格中的值
- xlbook.save("student.xlsx"):保存并覆盖原文件
openpyxl创建excel
- Workbook():构造函数创建新工作簿,在内存中创建
- wb.active:得到当前活动工作表,新工作簿带有一个默认工作表
- wb.create_sheet("Mysheet"):创建工作表
- mysht.cell(1,1).value=1000:为单元格指定新值
- wb.save("student2.xlsx"):另存为新工作簿
openpyxl读取excel文件
openpyxl 读写单元格时,单元格的坐标位置起始值是(1,1),即下标最小值为1,否则报错。
from openpyxl import load_workbook
xlbook=load_workbook("student.xlsx")
sht1=xlbook["Sheet1"]
print(sht1.cell(1,1).value)
print(sht1.cell(1,2).value)
print(sht1.cell(1,3).value)
print(sht1.cell(2,1).value)
print(sht1.cell(2,2).value)
print(sht1.cell(2,3).value)
运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t45.py
number
name
age
1
zhangsan
18
Process finished with exit code 0
openpyxl修改excel文件
from openpyxl import load_workbook
xlbook=load_workbook("student.xlsx")
sht1=xlbook["Sheet1"]
print(sht1.cell(2,3).value)
print(sht1.max_row)
sht1.cell(sht1.max_row+1,3).value=22
xlbook.save("student.xlsx")
openpyxl创建excel文件
from openpyxl import Workbook
wb=Workbook()
# mysht=wb.active
mysht = wb.create_sheet("Mysheet")
mysht.cell(1,1).value=1000
for i in range(5):
mysht.cell(i+1, 2).value = 1000+i
wb.save("student2.xlsx")
运行结果,得到工作簿student2.xlsx,里面包含工作表“Sheet”和"Mysheet"。
工作表Mysheet里前5行数据如下。
1000 | 1000 |
---|---|
1001 | |
1002 | |
1003 | |
1004 |