Java教程

openpyxl模块

本文主要是介绍openpyxl模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

openpyxl模块

1.excel文件的后缀名针对版本的不同是不同的

  03版本之前:.xls

  03版本之后:.xlsx

2.在python能够操作excel表格的模块有很多

  openpyxl模块

    最近几年比较流行的模块

      该模块可以操作03版本之后的文件

      针对03版本之前的兼容性可能不太好

  xlrd、wlwt模块

    xlrd控制读文件,wlwt控制写文件

      该模块可以操作任何版本的excel文件

3.excel本质并不是一个文件

  修改excel文件后缀名至.zip即可查看

(下载第三方模块:pip3 install openpyxl)

创建文件

(在使用openpyxl模块操作excel文件的时候一定要确保文件是关闭状态)

from openpyxl import Workbook

 

1.创建一个对象

wb = Workbook()

3.创建多个工作簿

wb1 = wb.create_sheet('学生表')
wb2 = wb.create_sheet('课程表')

4.还可以指定工作簿的顺序

w3 = wb.create_sheet('老师表',0)

5.create_sheet方法会返回当前被创建的工作簿对象

w3.title = '教师表'    # 工作簿名称支持二次修改
w3.sheet_properties.tabColor = "1072BA    "# 修改工作簿名称样式
print(wb.sheetnames)    # 查看当前excel文件所有的工作簿名称

2.保存文件

wb.save(r'1.xlsx')

 如何写数据

from openpyxl import Workbook

wb = Workbook()
wb1 = wb.create_sheet('数据统计',0)

 写入数据方式1

wb1['A1'] = 111
wb1['A2'] = 222

写入数据方式2

wb1.cell(column=1,row=3,value=333)    # cell意思是单元格

 写入数据方式3

wb1.append(['序号', '姓名', '年龄', '性别'])  # 定义表头数据
wb1.append([1, 'jason', 28, 'male'])  # 存储表单数据
wb1.append([2, 'tony', 38, 'female'])  # 存储表单数据
wb1.append([3, 'kevin', 28, 'male'])  # 存储表单数据
wb1.append([4, 'kevin1', 'male'])  # 存储表单数据
wb1.append([5, 'kevin2', 'female'])  # 存储表单数据
wb1.append([5, 'kevin2', '', 'female'])  # 存储表单数据
wb1.append([5, 'kevin2', 88, None])  # 存储表单数据

(append是按照行数一行行录入数据)

写入计算公式

wb1["A9"] = '=sum(A2:A8)'

wb.save(r'2.xlsx')

 如何读数据

from openpyxl import load_workbook

1.指定要读取的表格文件

wb = load_workbook(r'2.xlsx',data_only=True)

2.先查看工作簿名称,并指定你要操作的工作簿

print(wb.sheetnames)    # ['数据统计','Sheet']

3.指定操作的工作簿

wb1 = wb['数据统计']    # wb1指代的就是数据统计的工作簿

读取数据的方式1

print(wb1['B2'].value)    # 获取普通数据
print(wb1['A9'].value)    # 获取公式 =SUM(A2:A8)

 如果在读取数据的时候不想获取公式本身而是公式的结果需要指定data_only参数

wb = load_workbook(r'2.xlsx',data_only=True)

 读取数据的方式2

print(wb1.cell(row=3,column=2).value)

for row in wb1.rows:
    for r in row:
        print(r.value)

for col in wb1.columns:
    for c in col:
        print(c.value)

获取最大的行数和列数

print(wb1.max_row)
print(wb1.max_column)

 

这篇关于openpyxl模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!