1openpyxl-工作簿工作表
阿新 • • 發佈:2021-12-23
一安裝
安裝:pip install openpyxl
備註:
如果某一天庫不好使了,解決辦法如下:
1)卸載出問題的庫: pip uninstall pandas pip uninstall openpyxl 2)重新安裝 python -m pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple python -m pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple
二工作簿的新建儲存和開啟:
1建立工作簿(新建-儲存)
import openpyxl as vb path= r'C:/Users/66907/Desktop/test2021.xlsx' workbook = vb.Workbook(path) #新建一個工作簿 workbook.save(path) #儲存工作簿
2開啟工作簿(讀取工作簿-指定工作表)
import openpyxl as vb path = r'C:/Users/66907/Desktop/test2021.xlsx' workbook = vb.load_workbook(path) #讀取工作簿 worksheet = workbook['1月']
三工作表的建立刪除與複製:
1顯示工作簿中所有工作表的名稱:
import openpyxl as vb path= r'C:/Users/66907/Desktop/test2021.xlsx' workbook = vb.load_workbook(path) show_worksheets = workbook.worksheets #獲取所有工作表物件 for i in show_worksheets: print(i.title) #遍歷出每個工作表的名稱
2刪除指定的工作表:
import openpyxl as vb path = r'C:/Users/66907/Desktop/test2021.xlsx' workbook = vb.load_workbook(path) #開啟工作簿 worksheet = workbook['3月'] #指定工作表 workbook.remove(worksheet) #刪除指定工作表 workbook.save(path) #在原表儲存 備註:如果要另存為新檔案,指定一個新的path即可!
3新建指定名稱的工作表:
import openpyxl as vb path = r'C:/Users/66907/Desktop/test2021.xlsx' workbook = vb.load_workbook(path) #開啟工作簿 workbook.create_sheet('3月') #建立工作表3月 workbook.save(path) #儲存工作簿
4複製指定名稱的工作表並給表重新命名:
import openpyxl as vb path = r'C:/Users/66907/Desktop/test2021.xlsx' workbook = vb.load_workbook(path) #讀取工作簿 copysheet = workbook.copy_worksheet(workbook['3月']) #複製工作表 copysheet.title = '4月' #修改工作表名 workbook.save(path) #儲存工作簿
四練習:
1如何批量新建工作表
import openpyxl as vb path = r'C:/Users/66907/Desktop/test1223.xlsx' workbook = vb.Workbook(path) for i in range(1,32): workbook.create_sheet('12月' + str(i) + '日') workbook.save(path)
2如何批量修改工作表的名字:
import openpyxl as vb path = r'C:/Users/66907/Desktop/test1223.xlsx' workbook = vb.load_workbook(path) show_sheets = workbook.worksheets for i in show_sheets: i.title = '北京' + '_' + i.title workbook.save(path)
3保留含有上海兩個字的表,其餘表全部刪除:
import openpyxl as vb path = r'C:/Users/66907/Desktop/test1223.xlsx' workbook = vb.load_workbook(path) show_sheets = workbook.worksheets for i in show_sheets: if i.title.split('_')[0] != '上海': worksheet = workbook[i.title] workbook.remove(worksheet) workbook.save(path)
4複製30張表然後把模板刪除:
import openpyxl as vb path = r'C:/Users/66907/Desktop/test1223.xlsx' workbook = vb.load_workbook(path) for i in range(1,31): copysheet = workbook.copy_worksheet(workbook['模板']) #複製模板這張表 copysheet.title = '12月' + str(i) + '日' workbook.remove(workbook['模板']) #刪除模板表 workbook.save(path)