• 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')
  • 相关阅读:
    C#替换双引号
    Oracle 12c创建用户时出现“ORA-65096: invalid common user or role name”的错误
    Oracle 12c中文乱码,修改字符集的方法
    ORACLE 12C PDB 维护基础介绍
    spilt用法简介
    Log4net简介
    Log4net创建日志及简单扩展
    [转]ASP.NET MVC 入门11、使用AJAX
    对象池简单实现
    Android webview “location.replace” 不起作用
  • 原文地址:https://www.cnblogs.com/GOOGnine/p/15963877.html
Copyright © 2020-2023  润新知