python操作excel文件:讀取、寫入、新建表、移除表


#使用python操作excel文件時,需要導入第三方庫openpyxl,可使用命令python -m pip install openpyxl進行安裝
import openpyxl#導入openpyxl庫
from openpyxl import Workbook#導入Workbook

#注意:對excel文件進行操作時,文件要保持關閉狀態

#寫入:
wb=Workbook()#創建工作表
ws=wb.active#獲取文件當前活動sheet
ws['A1']='hello'#表示在A1單元格寫入’hello‘
ws.append([1,2,3,4])#表示在第一行單元格依次寫入1,2,3,4
# # ws.append({'A':"tom",'C':2})#表示A1="tom",C1=2
# # ws.append({'1':"tom",'3':2})#同樣表示A1="tom",C1=2
wb.save(r"./test.xlsx")#保存excel文件

#多行寫入
wb=Workbook()#創建工作表
ws=wb.active#獲取文件當前活動sheet
data=[[1,2,3,4],[5,6,7,8]]#使用列表嵌套列表的形式存儲要寫入每一行的數據
for t in range(1,len(data)+1):#遍歷要寫入的行數
i = 65#ASCII碼'65'表示'A'
for j in range(1,len(data[t-1])+1):#遍歷每行要寫入的數量
ws['%s%d'%(chr(i),t)]=data[t-1][j-1]
i+=1
wb.save(r"./test.xlsx")#保存excel文件

#讀取
get_wb=openpyxl.load_workbook(r"./test.xlsx")#獲取工作簿
get_sheet=get_wb['Sheet']#獲取工作表
get_cell=get_sheet['A2']#獲取指定單元格
print(get_cell.row,get_cell.column,get_cell.value)#輸出行號、列號、值:2 1 jack

result=[]#定義列表result存儲所有讀取數據
#使用循環遍歷工作表每一行
for i in get_sheet:#遍歷工作表每一行
tmp=[]#定義列表tmp存儲每行數據
for t in i:#遍歷行中的每個單元格
tmp.append(t.value)
result.append(tmp)
print(result)#[['tom', 2, 3, 4], ['jack', None, None, None]]

#新建表寫入數據
wb = Workbook()#創建工作表
wb.create_sheet('表1',0)#新建表“表1”,索引為0
ws=wb['表1']#使用表“表1”
ws['A1']='123'#插入數據
wb.save(r'./test.xlsx')#保存數據

#新建多張表、指定表頭、刪除表
data={'成功':[[1,2,3],[4,5,6]],'失敗':[[6,5,4],[3,2,1]]}
def new_sheet(argv:dict,head=None):
wb = Workbook() # 創建工作表
k = argv.keys()
for sheet_name in k:
try:
wb.remove(sheet_name)#如表已存在則移除工作表
except:
pass
wb.create_sheet(sheet_name,0)
ws=wb[sheet_name]
if head:
ws.append(head)#插入表頭
sheet_data=argv[sheet_name]
for t in range(1, len(sheet_data) + 1): # 遍歷要寫入的行數
i = 65 # ASCII碼'65'表示'A'
for j in range(1, len(sheet_data[t - 1]) + 1): # 遍歷每行要寫入的數量
ws['%s%d' % (chr(i), t+1)] = sheet_data[t - 1][j - 1]
i += 1
wb.save(r"./test.xlsx") # 保存excel文件
new_sheet(data,head=['l1','l2','l3'])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM