一、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")
運行結果: