python对Xlsx的读写(openpyxl)

在上一篇文章中我们介绍了Csv文件的操作,
在这片文章中我们介绍一下,
使用 openpyxl 对 Xlsx 文件进行读写。

一、安装

pip install openpyxl

二、写入 Xlsx 并保存

1、新建读写

from  openpyxl import  Workbook
wb = Workbook() # 实例化
ws = wb.active # 激活 worksheet
ws.append([1, 2, 3]) # list 数据写入
wb.save('ceshi.xlsx') # 写入文件

2、追加到已有文件中

from  openpyxl import  load_workbook
wb2 = load_workbook('ceshi.xlsx') # 实例化
ws = wb2.active # 激活 worksheet
ws.append([4, 5, 6]) # list 数据写入
wb2.save('ceshi.xlsx') # 写入文件

3、写入特定单元格

ws['B5'] = 100

4、创建表

# 插入到最后
ws1 = wb.create_sheet("fengkui")
# 插入到最开始的位置
ws2 = wb.create_sheet("fengkui2", 0)

三、读取 Xlsx 数据

1、查看所有表表名

from  openpyxl import  Workbook, load_workbook
wb = load_workbook('ceshi.xlsx') # 实例化
print(wb.sheetnames)

冯奎博客

2、获取每一行,每一列
sheet.rows为生成器, 里面是每一行的数据,每一行又由一个tuple包裹。

from  openpyxl import  Workbook, load_workbook
wb = load_workbook(filename='ceshi.xlsx', read_only=True)
ws = wb['Sheet']

for row in ws.rows:
    list = []
    for cell in row:
        list.append(cell.value)
    print(list)

3、读取特定单元格内容

# cell(行号,列表) 从1开始
cellDa = ws.cell(5, 2).value

四、其他操作

wb = openpyxl.load_workbook('ceshi.xlsx')
# 获取所有工作表名
names = wb.sheetnames
# wb.get_sheet_by_name(name) 已经废弃,使用wb[name] 获取指定工作表
sheet = wb[names[0]]
# 获取最大行数
maxRow = sheet.max_row
# 获取最大列数
maxColumn = sheet.max_column
# 获取当前活动表
current_sheet = wb.active
# 获取当前活动表名称
current_name = sheet.title
# 通过名字访问Cell对象, 通过value属性获取值
a1 = sheet['A1'].value
# 通过行和列确定数据
a12 = sheet.cell(row=1, column=2).value
# 获取列字母
column_name = openpyxl.utils.cell.get_column_letter(1)
# 将列字母转为数字, 参数忽略大小写
column_name_num = openpyxl.utils.cell.column_index_from_string('a')
# 获取一列数据, sheet.iter_rows() 获取所有的行

冯奎博客
请先登录后发表评论
  • latest comments
  • 总共0条评论