微软的Excel有后缀名为.xls、.xlsx的两种表格,两者有区别如下:
.xls | .xlsx |
---|---|
excel 2007以前的文件后缀名 | excel 2007开始的文件后缀名 |
最多容纳256列,16000多行数据 | 最多容纳16000列,1048567行数据 |
xlwt、xlrd | openyxl |
.xls主要使用xlwt、xlrd模块,.xlsx主要1使用openpyxl模块。
excel 2007开始兼容xls、xlsx后缀名。
python能够操作excel的模块有openpyxl、xlsxwriter、xlwt、pandas、xlrd、win32com、xlutils等。
1 安装三方模块
我们要使用python中的三方模块,首先该项目中要有对应的模块,那接下来展示如何安装模块到虚拟环境。
-
查看虚拟环境是否激活
首先要检查虚拟环境是否激活。点击Pycharm最下方的状态栏的Terminal,查看是否有(venv)在命令行最前方,若是有,则虚拟环境以经激活。没有则需要进行第二步,激活虚拟环境。
-
激活虚拟环境
在路径使用命令 ./venv/scripts/activate 进行虚拟环境激活,回车会出现报错,这是因为微软禁用了终端执行脚本的功能,可以使用命令Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser解除禁用,再执行./venv/scripts/activate命令即可激活虚拟环境。
激活状态如下:
使用命令pip list查看已经安装过的模块。
2 表格
- 工作薄:一个excel文件就是一个工作簿
- 工做表:一个工作簿的多张表格
- 单元格:存储信息的方格
1.新建一个excel文件
(1)新建一个没有的文件使用openpyxl.Workbook()
(2) 新建一个存在的文件使用openpyxl.load_workbook(文件路径和文件名)
-
操作工作表
(1) 创建工作表对象使用create_sheet(表名,下标)如果直接在工作簿最后追加工作表,下标参数不用写
(2)查看工作簿中已经存在的工作表使用heetnames
(3)移除工作表使用remove(表),其中表是指工作簿对象[工作表]
(4)插入信息有两种方法
方法一:使用cell(行号,列号)定位单元格,使用value()获取单元格的内容
方法二:使用[列号行号] 定位单元格两种方法查看单元格内容都有value,第二种在赋值时可以不用value
listdir():能够读取指定文件夹下的所有子文件
count():计数进行行号的递增
max_row():获取xlsx文件中最大行数
max_column():获取xlsx文件中最大列数
对表操作有下面的例子:
file = openpyxl.Workbook()
file.create_sheet('学生成绩',0)
file.create_sheet('学生成绩1') #追加
# print(file.sheetnames) 查看工作簿中已经存在的工作表
file.remove(file['Sheet'])
# 从学生成绩工作表插入信息
print(file['学生成绩'].cell(1, 1).value)
file['学生成绩'].cell(1, 1).value='姓名'
print(file['学生成绩'].cell(1, 1).value)
file['学生成绩'].cell(1, 2).value='性别'
print(file['学生成绩'].cell(1, 2).value
file['学生成绩']['AA1']='姓名'
print(file['学生成绩']['AA1'].value)
# 保存文件
file.save('./学生成绩.xlsx')