1. 程式人生 > 其它 >python辦公自動化EXCEL學習筆記

python辦公自動化EXCEL學習筆記

一、excel讀取

  1、首先使用命令 pip install openpyxl==2.6.2 匯入操作excel的模組

2、呼叫openpyxl.load_workbook(path)函式開啟工作簿,取得workbook物件

    需要明確的是 一個excel檔案就是一個工作簿,開啟工作簿後,底部的sheet1、sheet2.....這個叫做工作表格,workbook物件包含了所有的sheet

    活動表格:excel檔案當前顯示的sheet表格

  3、取得workbook物件後,使用active或者sheetname屬性,拿到想要的workbook物件

    使用索引或者工作表的cell(row,column)方法,取得cell物件,cell物件的value屬性拿到cell物件的值(單元格的值)

  4、使用工作表的max_row和max_column屬性拿到行和列的最大值

 1 import openpyxl
 2 
 3 wb = openpyxl.load_workbook('example.xlsx')
 4 print(wb.sheetnames)
 5 print(wb['Sheet1'].title)
 6 sheet1 = wb["Sheet1"]
 7 print(sheet1['A1'].value)
 8 
 9 c = sheet1.cell(row=1,column=1)
10 print('Row is %s,Column is %s ,Value is %s
' %(c.row,c.column,c.value)) 11 12 13 for i in range(1,5): 14 print('%10s,%10s,%10s'%(sheet1.cell(row=i,column=1).value,sheet1.cell(row=i,column=2).value,sheet1.cell(row=i,column=3).value)) 15 16 print(sheet1.max_row) 17 print(sheet1.max_column)

['Sheet1', 'Sheet2', 'Sheet3']
Sheet1
2022/3/410:41
Row is 1,Column is 1 ,Value is 2022/3/410:41
2022/3/410:41, a, 1
2022/3/410:41, b, 2
2022/3/410:41, c, 3
2022/3/410:41, d, 4
5
3

  5、使用openpyxl.utils.column_index_from_string()函式,將列值得字母轉為數字,openpyxl.utils.get_column_letter()函式,將數字轉換為字母

 1 >>> import openpyxl
 2 >>> from openpyxl.utils import get_column_letter, column_index_from_string
 3 >>> get_column_letter(1) #  Translate column 1 to a letter.
 4 'A'
 5 >>> get_column_letter(2)
 6 'B'
 7 >>> get_column_letter(27)
 8 'AA'
 9 >>> get_column_letter(900)
10 'AHP'
11 >>> wb = openpyxl.load_workbook('example.xlsx')
12 >>> sheet = wb['Sheet1']
13 >>> get_column_letter(sheet.max_column)
14 'C'
15 >>> column_index_from_string('A') # Get A's number.
16 1
17 >>> column_index_from_string('AA')
18 27

  6、可使用worksheet物件,通過[A1:F3]的形式,拿到excel此區域的cell物件,然後進行遍歷便可取到每一個cell物件

1 sheet1['A1:F3']
2 .....
3 for item in ['A1:F3']:
4 .....

二、excel寫入

  需要注意的地方是:修改Workbook物件或它的工作單元格時,不會自動儲存,要手動呼叫save()方法才能儲存

  1、建立工作簿

    使用openpyxl.Workbook()函式就可以建立一個新的空的workbook物件

  2、建立和刪除工作表

    create_sheet()用來建立工作表,方法會返回一個新的Workbook物件,名字為SheetX,預設新增到工作簿的最後一個工作表。可以使用index指定新的表格在工作簿中的位置,title指定名稱

 1 >>> import openpyxl
 2 >>> wb = openpyxl.Workbook()
 3 >>> wb.sheetnames
 4 ['Sheet']
 5 >>> wb.create_sheet() # Add a new sheet.
 6 <Worksheet "Sheet1">
 7 >>> wb.sheetnames
 8 ['Sheet', 'Sheet1']
 9 >>> # Create a new sheet at index 0.
10 >>> wb.create_sheet(index=0, title='First Sheet')
11 <Worksheet "First Sheet">
12 >>> wb.sheetnames
13 ['First Sheet', 'Sheet', 'Sheet1']
14 >>> wb.create_sheet(index=2, title='Middle Sheet')
15 <Worksheet "Middle Sheet">
16 >>> wb.sheetnames
17 ['First Sheet', 'Sheet', 'Middle Sheet', 'Sheet1']

   del刪除工作表

1 >>> wb.sheetnames
2 ['First Sheet', 'Sheet', 'Middle Sheet', 'Sheet1']
3 >>> del wb['Middle Sheet']
4 >>> del wb['Sheet1']
5 >>> wb.sheetnames
6 ['First Sheet', 'Sheet']

  3、單元格寫入值

1 sheet['A1'] = 'Hello, world!' # Edit the cell's value.
2 >>> sheet['A1'].value
3 'Hello, world!'

三、設定單元格字型風格

  1、匯入相應的函式

from openpyxl.styles import Font
1  >>> import openpyxl
2  >>> from openpyxl.styles import Font
3  >>> wb = openpyxl.Workbook()
4  >>> sheet = wb['Sheet']
5  >>> italic24Font = Font(size=24, italic=True) # Create a font. 24點  斜體
6  >>> sheet['A1'].font = italic24Font # Apply the font to A1.
7  >>> sheet['A1'] = 'Hello, world!'
8  >>> wb.save('styles.xlsx')