DW-办公自动化02(Excel)
生活随笔
收集整理的這篇文章主要介紹了
DW-办公自动化02(Excel)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 0 對應包安裝
- 1 Excel讀取
- 1.1 讀取對應表格
- 1.2 讀取單元格
- 1.3 讀取多個格子的值
- 1.4 練習題
- 2 Excel寫入
- 2.1 寫入單元格并保存
- 2.2 寫入行數據并保存
- 2.3 將公式寫入單元格保存
- 2.4 插入數據
- 2.5 刪除
- 2.6 移動
- 2.7 Sheet表操作
- 2.8 創建新的Excel表
- 3 Excel樣式
- 3.1 設置字體樣式
- 3.2 設置對齊樣式
- 3.3 設置行高與列寬
- 3.4 合并、取消合并單元格
- 3.5 練習題
0 對應包安裝
- 安裝openpyxl模塊:
- 方法一:pip命令安裝:pip install openpyxl
- 方法二:直接用Anaconda即可
- Excel表格介紹:
1 Excel讀取
1.1 讀取對應表格
- 打開已存在表格:load_workbookfrom openpyxl import load_workbookexl = load_workbook(filename = 'test.xlsx') print(exl.sheetnames) # 打印所有工作表名 # ['Sheet1']
- 選擇對應名稱的工作表:單個表exl.active,選擇表exl['表名']from openpyxl import load_workbookexl_1 = load_workbook(filename = 'test.xlsx') print(exl_1.sheetnames) # 打印所有工作表名 # ['work']# 選擇'work'工作表 sheet = exl_1['work'] # 若只有一張表,則 sheet = exl_1.active
- 獲取Excel中 內容所占的范圍區域:.dimensionssheet = exl_1['work'] print(sheet.dimensions) # A1:B51104
1.2 讀取單元格
- 獲取對應單元格的具體內容:
- 方法一:指定行列數
- 方法二:指定坐標
- 獲取單元格對應的行、列和坐標:print(cell_1.row, cell_1.column, cell.coordinate) # 2 1 B1
1.3 讀取多個格子的值
- 指定坐標范圍:cells = sheet['A1:C8'] #A1到C8區域的值
- 指定行的值:Row = sheet[1] #第1行的值 Rows = sheet[1:2] #第1到2行的值
- 指定列的值:Column = sheet['A'] #第A列 Columns = sheet['A:C'] #第A到C列
- 指定范圍的值:# 行獲取 for row in sheet.iter_rows(min_row = 1, max_row = 5,min_col = 2, max_col = 6):print(row) # 行獲取 for row in sheet.iter_rows(min_row = 1, max_row = 5,min_col = 2, max_col = 6):print(row)# 一列由多個單元格組成,若需要獲取每個單元格的值則循環獲取即可for cell in row:print(cell.value) # 列獲取 for col in sheet.iter_cols(min_row = 1, max_row = 5,min_col = 2, max_col = 6):print(col)
1.4 練習題
- 題目:找出test_1.xlsx中sheet1表中空著的格子,并輸出這些格子的坐標 from openpyxl import load_workbookexl=load_workbook('test_1.xlsx') sheet=exl.active # 具體查看對應表格的行列數 for row in sheet.iter_rows(min_row=1,max_row=29972, min_col=1,max_col=10):for cell in row:if not cell.value:print(cell.coordinate)
2 Excel寫入
2.1 寫入單元格并保存
- 兩種方法寫入:
- 指定坐標寫入
- .value
2.2 寫入行數據并保存
-
寫入一行數據并保存:
- 導入xlwt模塊,.Workbook()新建一個工作簿,.add_sheet()創建一個哦工作表
- 用.write()函數寫入行數據,write(行,列,數據)
- .save()函數保存
-
寫入多行數據并保存:
# 創建工作簿,創建工作表 import xlwt exl=xlwt.Workbook(encoding='utf-8') worksheet=exl.add_sheet('My Worksheet')data = [['hello',22,'hi'],['hell',23,'h'],['he',25,'him']] for i in range(len(data)): # 行數for j in range(len(data[i])): # 列數worksheet.write(i,j,data[i][j]) exl.save(filename = 'test1.xls')
2.3 將公式寫入單元格保存
- 使用坐標寫入from openpyxl import load_workbook exl = load_workbook(filename = 'test.xlsx') sheet = exl.activesheet['A2'] = '=SUM(A1:D1)' exl.save(filename='test.xlsx')
2.4 插入數據
- 插入列數據:insert_clos(idx,amount)
- 插入一列:
- 插入多列:
- 插入行數據:insert_rows(idx,amount)#插入一行 sheet.insert_rows(idx=2) #插入多行 sheet.insert_rows(idx=2, amount=5)
2.5 刪除
- 刪除一列:delete_cols(idx,amount)sheet.delete_cols(idx=5, amount=2) #第5列前刪除2列
- 刪除多列:delete_rows(idx,amount)sheet.delete_rows(idx=2, amount=5)
2.6 移動
- move_range('范圍',rows=,clos=)當數字為正即向下或向右,為負即為向上或向左sheet.move_range('C5:F10', rows=2, cols=-3)
2.7 Sheet表操作
- 創建新的sheet:craete_sheet()# 創建新的工作簿 from openpyxl import Workbook workbook=Workbook() sheet=workbook.active workbook.save(filename='new_test.xlsx')exl.create_sheet('new_sheet')# 執行到這一步是沒有改變的 # 執行這一步才能改變 exl.save(filename='new_test.xlsx')
- 復制已有的sheet:copy_worksheet()sheet=exl[exl.sheetnames[0]] exl.copy_worksheet(sheet) link
- 修改sheet表名:sheet.title =sheet = exl.active sheet.title = 'newname'
2.8 創建新的Excel表
from openpyxl import load_workbookworkbook = Workbook() sheet = workbook.active workbook.save(filename = 'new_test.xlsx')3 Excel樣式
3.1 設置字體樣式
- Font(name字體名稱,size大小,bold粗體,italic斜體,color顏色)# 設置單個單元格字體 from openpyxl import Workbook from openpyxl.styles import Fontworkbook = Workbook() sheet = workbook.active cell = sheet['A1'] font = Font(name='字體', sizee=10, bold=True, italic=True, color='FF0000') cell.font = font workbook.save(filename='new_test') from openpyxl import Workbook from openpyxl.styles import Fontworkbook = Workbook() sheet = workbook.active # 設置多個單元格 cells = sheet[2] font = Font(name='字體', sizee=10, bold=True, italic=True, color='FF000000') for cell in cells:cell.font = font workbook.save(filename='new_test')
3.2 設置對齊樣式
- 常見對齊樣式:
- 水平對齊:distributed, justify, center, left, fill, centerContinuous, right, general
- 垂直對齊:bottom, distributed, justify, center, top
- 設置單元格邊框樣式:
- Side(style邊線樣式, color邊線顏色)
- Border(左右上下邊線)
- 設置單元格邊線樣式:
- 邊線樣式:double, mediumDashDotDot, slantDashDot, dashDotDot, dotted, hair, mediumDashed, dashed, dashDot, thin, mediumDashDot, medium, thick
3.3 設置行高與列寬
- from openpyxl import Workbook workbook = Workbook() sheet = workbook.active sheet.row_dimensions[1].height = 50 sheet.column_dimensions['C'].width = 20 workbook.save(filename='new_test')
3.4 合并、取消合并單元格
- 合并與取消:merge_cells()``unmerge_cells()sheet.merge_cells('A1:B2') sheet.merge_cells(start_row=1, start_column=3,end_row=2, end_column=4)sheet.unmerge_cells('A1:B2') sheet.unmerge_cells(start_row=1, start_column=3,end_row=2, end_column=4)
3.5 練習題
- 打開test文件,找出文件中購買數量buy_mount超過5的行,并對其標紅、加粗、附上邊框。from openpyxl import load_workbook from openpyxl.styles import Font, Side, Border workbook = load_workbook('./test.xlsx') sheet = workbook.active buy_mount = sheet['F'] row_lst = []for cell in buy_mount:if isinstance(cell.value, int) and cell.value > 5: print(cell.row)row_lst.append(cell.row)side = Side(style='thin', color='FF000000') border = Border(left=side, right=side, top=side, bottom=side) font = Font(bold=True, color='FF0000') for row in row_lst:for cell in sheet[row]: cell.font = font cell.border = border workbook.save('new_test'.xlsx')
總結
以上是生活随笔為你收集整理的DW-办公自动化02(Excel)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作84:模板字面量
- 下一篇: 工作244:根据页面的内容调用