python处理excel

整理一下python处理excel的openpyxl相关代码

0x01 安装openpyxl

pip install openpyxl

0x02 创建一个excel表格

    A、导包
    B、在内存中创建一个表格
    C、将内存中的虚拟表格保存到本地!
示例代码:
from openpyxl import Workbook
wb = Workbook()
wb.save('first_create.xlsx')

0x03 打开一个已经存在的excel表格

    A、导包
    B、load_workbook(),返回值是一个对象,通过操作这个对象去操作表格
示例代码:
from openpyxl import load_workbook
wb = load_workbook('first_create.xlsx')

0x04 获取,修改sheet的名字

    A、获取当前活跃的工作表(sheet) -->  使用active方法
    B、使用sheet.title得到表名!
    C、所有的修改必须保存,不然都是在内存中修改!
示例代码:
from openpyxl import load_workbook
wb = load_workbook('first_create.xlsx')
sheet = wb.active
sheet.title = 'XXXXXXX'
print(sheet.title)
wb.save('first_create.xlsx')

0x05 向excel表格中写入数据(一个一个写)

    A、无则增,有则改(覆盖)
示例代码:
from openpyxl import load_workbook
import datetime
wb = load_workbook('first_create.xlsx', data_only=True)
sheet = wb.active
sheet['B3'] = 'CCCC'
sheet['C3'] = '18'
sheet['D3'] = '170cm'
sheet['E3'] = '88, 88, 88'
sheet['F3'] = datetime.datetime.now().strftime('%Y-%m-%d')
sheet['B3'] = 'BBBB'
wb.save('first_create.xlsx')

0x06 向excel表格中一次性写入多条数据

    原则:默认是在写在有数据的行的下一行!
    data_only=True --> 只显示值,由于excel表格中,有很多公式,不显示公式,只显示值! 
示例代码:
from openpyxl import load_workbook
import datetime
wb = load_workbook('first_create.xlsx', data_only=True)
sheet = wb.active
sheet.append(['ssyy', 18, '180cm', '90, 90, 90', datetime.datetime.now().strftime('%Y-%m-%d')])
wb.save('first_create.xlsx')

0x07 获取所有的sheet名字

   ->  sheetnames
示例代码:
from openpyxl import load_workbook
wb = load_workbook('员工工资表.xlsx', data_only=True)
print(wb.sheetnames)

0x08 获取指定的活动表, 拿到活动表后,操作活动表

    get_sheet_by_name()  --> 这种方法会报警告错误!使用以下方法
    wb['表名']           --> <Worksheet "Sheet1">
示例代码:
from openpyxl import load_workbook
wb = load_workbook('员工工资表.xlsx', data_only=True)
sheet = wb['Sheet1']
print(sheet)

0x09获取指定表后,查询单元格数据

    A、有数据就返回数据
    B、无数据就返回None
示例代码:
from openpyxl import load_workbook
wb = load_workbook('员工工资表.xlsx', data_only=True)
sheet = wb['Sheet1']
data_D1 = sheet['D1'] # sheet['D1']返回的是一个单元格对象,通过value取值
print(data_D1.value)
data_GG1 = sheet['GG1']
print(data_GG1.value)

0x10 循环遍历【使用切片方式】

	获取单元格值 --> sheet['B1':'F1'] 
    返回值是一个元祖,里面有一个元祖,对其里面的元祖进行for循环,然后用value取值
示例代码:
from openpyxl import load_workbook
wb = load_workbook('员工工资表.xlsx', data_only=True)
sheet = wb['Sheet1']
# print(sheet['B1':'F1'])
for cell in sheet['B1': 'F1'][0]:
    print(cell.value, end=' ')

0x11 按行遍历

 遍历思路:1、逐行遍历,每一行是一个元祖; 
         2、对每个行进行遍历,得到每个单元格,对单元格取值,得到结果
示例代码:
from openpyxl import load_workbook
wb = load_workbook('员工工资表.xlsx', data_only=True)
sheet = wb['Sheet1']
for row in sheet:
    for cell in row:
        print(cell.value, end=' ')
    print(' ')

0x12 按列遍历

遍历思路:1、逐列遍历,每一列是一个元祖;
    	 2、对每个列进行遍历,得到每个单元格,对单元格取值,得到结果
示例代码:
from openpyxl import load_workbook
wb = load_workbook('员工工资表.xlsx', data_only=True)
sheet = wb['Sheet1']
for column in sheet.columns:
    for cell in column:
        print(cell.value, end=' ')
    print(' ')

0x13 遍历指定行,指定列

    sheet.iter_rows, min_row, max_row, min_col, max_col
示例代码:
from openpyxl import load_workbook
wb = load_workbook('员工工资表.xlsx', data_only=True)
sheet = wb['Sheet1']
for row in sheet.iter_rows(min_row=2, max_row=5, min_col=3, max_col=4):
    for cell in row:
        print(cell.value, end=' ')
    print(' ')

0x14 设置单元格样式(导包部分)

      Font     : 设置字体
      colors   : 设置颜色
      Alignment: 设置文本对齐方式
      size     :  设置字体大小 
      italic   :  设置斜体
      bold     :  设置粗体

from openpyxl.styles import Font, colors, Alignment

0x15 设置字体样式

      A、声明样式:font_style = '样式内容';
      B、设置样式:sheet['D1'] = font_style
示例代码:
from openpyxl import load_workbook
from openpyxl.styles import Font, colors, Alignment
wb = load_workbook('员工工资表.xlsx')
sheet = wb['Sheet1']
sheet['D1'].font = Font(name='宋体', size=20, italic=True, color=colors.BLACK, bold=True)
wb.save('员工工资表_01.xlsx')

0x16 设置对齐方式

示例代码:
from openpyxl import load_workbook
from openpyxl.styles import Font, colors, Alignment
wb = load_workbook('员工工资表.xlsx')
sheet = wb['Sheet1']
sheet['D1'].alignment = Alignment(horizontal='center', vertical='center')
wb.save('员工工资表_01.xlsx')

0x17 设置单元格的宽和高

    row_dimensions , height
    column_dimensions, width
示例代码:
from openpyxl import load_workbook
from openpyxl.styles import Font, colors, Alignment
wb = load_workbook('员工工资表_01.xlsx')
sheet = wb['Sheet1']
# 设置第二行的行高
sheet.row_dimensions[2].height = 30
# 设置第三列的列宽
sheet.column_dimensions['C'].width = 40
wb.save('员工工资表_01.xlsx')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值