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()

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *