一、excel文件的读取
需要安装的包:xlrd:读取;xlwt:写入;xlutils:分割、复制、筛选
sudo:表示以管理员身份运行命令(mac系统中使用)
>sudo pip install xlrd xlwt xlutils
示例文件:
例1:读取sheet页的数量:
import xlrdwb = xlrd.open_workbook('./dataFile/testxls.xls')# sheet的数量
print('sheet 数量:', wb.nsheets)
运行结果:
C:\stq\study\pythonProject\venv\Scripts\python.exe C:\stq\study\pythonProject\excel_read.py
sheet 数量: 3进程已结束,退出代码为 0
例2:读取sheet的名称
方法一:读取excel的所有sheet名称
wb = xlrd.open_workbook('./dataFile/testxls.xls')
print("sheets 名称:", wb.sheet_names())
运行结果:
C:\stq\study\pythonProject\venv\Scripts\python.exe C:\stq\study\pythonProject\excel_read.py
sheets 名称: ['Sheet1', 'Sheet2', 'Sheet3']进程已结束,退出代码为 0
方法二:读取sheet名称
# 根据索引获取sheet名称
sh = wb.sheet_by_index(1)
print(sh.name)
# 根据名称获取
sh = wb.sheet_by_name('一班成绩')
print(sh.name)
运行结果:
C:\stq\study\pythonProject\venv\Scripts\python.exe C:\stq\study\pythonProject\excel_read.py
二班成绩
一班成绩进程已结束,退出代码为 0
例3:读取表格中的内容
方法一:读取指定表格中指定行、指定列的内容
import xlrdwb = xlrd.open_workbook("./dataFile/testxls.xls")
sh = wb.sheet_by_index(0)print("sheet %s 有%s行,有%s列" % (sh.name, sh.nrows, sh.ncols))
# 打印第一行的内容
print("第一行的内容为", sh.row_values(0))
# 打印第二列的内容
print("第二列的内容为", sh.col_values(1))
运行结果:
C:\stq\study\pythonProject\venv\Scripts\python.exe C:\stq\study\pythonProject\excel_read.py
sheet 一班成绩 有5行,有5列
第一行的内容为 ['姓名', '语文', '数学', '语文', '英语']
第二列的内容为 ['语文', 89.0, 88.0, 96.0, 97.0]进程已结束,退出代码为 0
方法二:读取指定表格中的内容
# 读取单元格操作
print('第2行第3列的内容为:', sh.cell(1,2))
运行结果:
C:\stq\study\pythonProject\venv\Scripts\python.exe C:\stq\study\pythonProject\excel_read.py
第2行第3列的内容为: number:80.0进程已结束,退出代码为 0
二、excel文件的写入
方法一:写入sheet页名称
import xlwt# 创建Workbook对象
wb = xlwt.Workbook()# 添加sheet页
sh = wb.add_sheet('四班成绩')
sh = wb.add_sheet('五班成绩')
# 保存xls文件
wb.save('./dataFile/test_write.xls')
运行结果:
例1:在sheet页中指定单元格添加内容
方法一:
import xlwt# 创建Workbook对象
wb = xlwt.Workbook()# 添加sheet页
sh = wb.add_sheet("一班成绩")# 向表格的指定行指定列中添加内容
sh.write(0, 0, "姓名")
sh.write(0, 1, "一班")
sh.write(0, 2, "二班")
# # 保存xls文件
wb.save("./dataFile/test_write.xls")
运行结果:
方法二:循环在指定行的第几列中插入值
import xlwt# 创建Workbook对象
wb = xlwt.Workbook()# excel表格形式展示1-10的平方
sh = wb.add_sheet("平方值", cell_overwrite_ok=True)
sh.write(0, 0, "数字")
sh.write(0, 1, "平方值")# 1-9的9次循环
for i in range(1, 10):# 第i行的第1列输入ish.row(i).write(0, i)# 第i行的第2列输入i*i的值sh.row(i).write(1, i * i)
wb.save("./dataFile/test_write.xls")
运行结果: