牛人博客傳送門python
操做excelapp
from openpyxl import Workbook """ 犯得錯: 必須全部寫完後再關閉 """ # write wb = Workbook() ws = wb.create_sheet('first', 0) # 獲取excel文件的全部sheet以列表返回 sheet_list = wb.sheetnames # 獲取excel中每一個sheet for i in wb: print(i) # 直接獲取指定sheet對象 sheet1 = wb['first'] # 指定單元格寫入數據 sheet1['a1'] = '姓名' sheet1['b1'] = '年齡' # 或者經過cell函數來實現 sheet1.cell(row=2, column=1, value='xxx') sheet1.cell(row=2, column=2, value='30') sheet2 = wb.create_sheet('第二個表格', 1) # 若是行內有內容,從下一行空白行開始寫入 # 一次添加1行寫入 row = range(1, 6) sheet2.append(row) # 一次添加多行 rows = [ ['姓名', '年齡', '性別'], ['sun', '30', 'male'], ['xiu', '30', 'male'], ['wen', '30', 'male'], ] for i in rows: sheet2.append(i) wb.save('manage.xlsx')
# 獲取有效的【寫入內容】最大行和列 print(sheet2.rows) # 全部有效行<generator object Worksheet._cells_by_row at 0x000001CA5A275888> print(sheet2.columns) # <generator object Worksheet._cells_by_col at 0x0000026B99345888> print(sheet2.max_row) # 5 print(sheet2.max_column) # 5 # 獲取每一行數據 for row in sheet2.rows: for val in row: print(val.value) # 獲取某一行數據 for cell in list(sheet2.rows)[0]: # 第一行數據 print(cell.value) wb.save('manage.xlsx')
from openpyxl import load_workbook wb = load_workbook(filename='manage.xlsx', read_only=False, data_only=True) # data_only = True 表示單元格的值是由公式計算的,返回的是值,而不是公式 sheets = wb.sheetnames # 獲取excel文件中全部的sheet名列表 print(sheets) sheet = wb['first'] # 指定某個sheet表格 # 獲取內容 val = sheet['a1'].value print(val) # 賦值 sheet['b2'] = 30 sheet.title = '我改變了sheet名' wb.save('manage.xlsx')