python处理Excel表基本知识

1、加载或创建Excel文件

  • 当Excel文件存在时,wb = openpyxl.load_workbook() 接受文件名或文件的绝对路径,返回一个workbook数据类型的值
  • 当Excel文件不存在时,创建workbook,并且保存
    import openpyxl
    wb = openpyxl.Workbook()
    wb.active.title=‘mysheet’
    wb.save(“test.xlsx”)

2、获得、创建、删除sheet表

  • sheet_list = wb.worksheets
    可通过索引指向不同表sheet_list[0]、sheet_list[1]
  • name_list = wb.sheetnames取得工作簿中所有表名的列表
  • sheet = wb[‘Sheet1’] 传递表名字符串获得该表
  • sheet = wb.active取得工作簿的活动表,即工作簿在Excel打开时出现的工作表
  • wb.create_sheet(“mysheet”) 调用create_sheet()方法,就能在相对应的excel中创建一个sheet,也可在方法中指定下标,在特定位置创建表wb.create_sheet(index=1, title=“mysheet”)wb.remove(wb[“my sheet”]) 或者 del wb[sheetname] 来删除表

3、获得cell对象(单元格)

  • c = sheet[‘A1’] 获得单元格;c.value获得单元格中的值;c.row获得单元格的横坐标数字;c.column获得单元格的纵坐标字母;c.coordinate获得单元格的坐标字符串;**sheet[‘A1’] = ‘string’**可直接更改单元格中的值
  • c = sheet.cell(row=1, column=2) 通过cell方法和它的关键字参数得到cell对象(也可使用位置参数);sheet.cell(1, 2, ‘target_string’) 可以更改单元格的值

4、获取表的行数与列数,列字母与数字的相互转换

  • 可以通过 Worksheet 对象的 max_rowmax_column,maXrow = sheet.max_row, maXcolumn = sheet.max_column均返回一个整数,确定表的大小
  • 从字母转换到数字就用openpyxl.utils.column_index_from_string(‘AA’);从数字转换到字母就用openpyxl.utils.get_column_letter(24),注意需要先从openpyxl.utils中引入这两个函数

5、获得行或列

  • sheet[‘A1’:‘C3’] 获得嵌套的元组,内层的元组是每一行单元格构成的
((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>),
 (<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>), 
 (<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>))
  • 要访问特定行或列的单元格的值,可以利用list(sheet.rows)[1]或者sheet[‘2’] 得到第二行构成的元组,list(sheet.columns)[0] 或者**sheet[‘A’]**得到第A列构成的元组

6、设定字体格式

  • 设定字体方法
from openpyxl.styles import Font
wb = openpyxl.Workbook()
sheet = wb['Sheet']
italic24Font = Font(name = '黑体', size = 24, italic = True) #将字体设置为24号斜体
sheet['A1'].font = italic24Font
wb.save("文件路径") #记得保存

Font()函数的关键字参数

关键字参数数据类型描述
name字符串字体名称,诸如’Calibri’ 或’黑体’
size整型大小点数
bold布尔型True 表示粗体
italic布尔型True表示斜体

7、公式的应用

在加载文件时,load_workbook()函数应该传入参数data_only=True,文档才能显示公式计算后的结果而不是公式本身

import openpyxl

wb = openpyxl.load_workbook("F:\\python_work\\CSDN\\example.xlsx", data_only = True)
sheet = wb.active
sheet['D1'] = '=SUM(C1:C7)'
wb.save('example.xlsx')

8、调整行列的高度与宽度

#调整行列的高度与宽度
import openpyxl

wb = openpyxl.load_workbook("F:\\python_work\\CSDN\\example.xlsx")
sheet = wb.active
sheet.row_dimensions[1].height = 40 #更改第一行的高度
sheet.column_dimensions['A'].width = 10 #更改第一列的宽度
wb.save('example.xlsx')

9、合并拆分单元格

#合并、拆分单元格
import openpyxl

wb = openpyxl.load_workbook("F:\\python_work\\CSDN\\example.xlsx")
sheet = wb.active
sheet.merge_cells('A1:D1')
sheet['A1'] = '四个单元格合并'
wb.save('example.xlsx')

同理可用sheet.unmerge_cells(‘A1:D1’)拆开合并的单元格

10、冻结行或列

#冻结某一行或某一列,滚动时被冻结的行列不会被移出屏幕
import openpyxl

wb = openpyxl.load_workbook("F:\\python_work\\CSDN\\censuspopdata.xlsx")
sheet = wb.active
sheet.freeze_panes = 'B2' #B2单元格以上的行,以及以左的列被冻结,单元格所在的行与列并不会被冻结
wb.save('censuspopdata.xlsx')

openpyxl更新后的方法参考 https://www.codeleading.com/article/7542118289/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值