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

 

posted @ 2022-03-07 10:12  灯下一个人  阅读(157)  评论(0编辑  收藏  举报