Python基础教程

015_Python读写excel文件

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
这篇文章对您有用吗?

我们要如何帮助您?