openpyxl是一個用於讀寫Excel 2010 xlsx文件的python庫。
openpyxl官方文檔:https://openpyxl.readthedocs.io/en/stable/
一、安裝包
pip3 install openpyxl
二、創建Excel,寫入數據
from openpyxl import Workbook #創建Workbook,並默認會創建一個空表,名稱為:Sheet wb = Workbook() #獲取默認的sheet ws1 = wb.active #設置Sheet名稱 ws1.title = 'Sheet1' #寫入單個單元格 ws1['A1'] = '標題列1' ws1['B1'] = '標題列2' #寫入多個單元格(從有數據的行的下一行寫入) ws1.append(['張三', 80]) ws1.append(['李四', 90]) #創建一個新sheet,可以指定名稱 ws2 = wb.create_sheet('Sheet2') #復制Sheet1,新sheet名稱為Sheet1 Copy ws3 = wb.copy_worksheet(wb['Sheet1']) #打印所有表名 print(wb.sheetnames) #保存 wb.save('1.xlsx')
結果Excel內容如下:
三、讀取Excel數據
讀取上面創建的1.xlsx數據
from openpyxl import Workbook from openpyxl import load_workbook wb = load_workbook('1.xlsx') #猜測格式類型 wb.guess_types = True ws1 = wb.active print('總行數', ws1.max_row) print('總列數', ws1.max_column) print('---獲取單個單元格的值---') print(ws1['A1'].value) print(ws1[1][0].value) #這里也是A1值,行索引從1、列索引從0算起 print('---獲取單列的所有值---') for cell in ws1['A']: print(cell.value) print('---獲取多列的值(通過切片)---') #如果范圍比實際大,如實際只有AB兩列,指定A:B,則獲取結果返回None,並且C列會被后面.columns和.rows獲取到 for column in ws1['A:B']: for cell in column: print(cell.value) print('---獲取所有列的值---') for column in ws1.columns: #也可用ws1.iter_cols() for cell in column: print(cell.value) print('---獲取某行的值---') for cell in ws1[1]: print(cell.value) print('---獲取多行的值(通過切片)---') for row in ws1[1:2]: for cell in row: print(cell.value) print('---獲取所有行的值---') for row in ws1.rows: #也可用ws1.iter_rows() for cell in row: print(cell.value)