Excel資料的寫入與讀取
openpyxl模組可以存取excel的檔案,注意只能存取xlsx檔案,不能存取xls檔案
寫入
#如果無法寫入或讀取檔案請把windows開啟的excel關閉,excel會占用資源
import openpyxl
# 建立一個工作簿
workbook=openpyxl.Workbook()
# 建立工作表
ws1 = workbook.create_sheet("Mysheet") # 直接開在最後(default)
ws2 = workbook.create_sheet("Mysheet1", 0) # 在第一個位置插入
print(ws1, type(ws1), ws2, type(ws2))
#查看工作簿的名稱
print(workbook.sheetnames)
# 取得第 1 個工作表
sheet = workbook.worksheets[0]
sheet1 = workbook.worksheets[1]
# 以儲存格位置寫入資料
sheet['A1'] = '三年乙班'
# 以串列寫入資料,寫入"列"
listtitle=['座號', '姓名', '國文', '英文', '數學']
sheet.append(listtitle)
listdatas = [
['1', '野比大雄', 65, 62, 40],
['2', '源靜香', 85, 90, 87],
['3', '骨川小夫', 92, 90, 95],
['4', '剛田武', 67, 80, 62]
]
# 逐列寫入第一個工作頁
for listdata in listdatas:
sheet.append(listdata)
#用兩層迴圈依照表格位置一個一個把listdatas的值帶進去
for i, j in zip(range(1, 5), listdatas):
for k, l in zip(range(1, 6), j):
sheet1.cell(row=i, column=k).value = l
# 儲存檔案
workbook.save('test1.xlsx')
workbook.close()
讀取
#如果無法寫入或讀取檔案請把windows開啟的excel關閉,excel會占用資源
import openpyxl
# 讀取檔案
workbook = openpyxl.load_workbook('test.xlsx')
# 取得第一個工作表
#no1 = workbook.worksheets[0]
# 取得'Sheet'工作表,直接以工作表的名稱當索引值
no1 = workbook['Sheet']
# 獲取指定的欄位
print(no1['A1'], no1['A1'].value)
# 取得行數和列數
print(no1.max_row, no1.max_column)
# 取得指定欄位的值
print(no1.cell(row=2, column=2).value)
for i in range(1, no1.max_row+1):
for j in range(1, no1.max_column+1):
print(no1.cell(row=i, column=j).value, end=" ")
print()
workbook.close()