Python如何实现高效Excel数据处理?

2026-05-21 20:391阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计924个文字,预计阅读时间需要4分钟。

Python如何实现高效Excel数据处理?

一. Excel在Python中的应用及数据存储在Python中,Excel文件的应用非常广泛,尤其在处理大量测试数据时。为了高效管理和使用这些数据,我们通常需要将数据存储在数据库中。这样,在测试时,可以直接从数据库中读取所需数据,提高测试效率。这一点非常重要!

二. 存储测试结果除了存储测试数据,我们还需要保存测试结果。这有助于后续分析和总结测试效果。

一. Excel在python中的应用

存测试数据

有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到。测试的时候就从数据库中读取出来。这点是非常重要的!

存测试结果

Python如何实现高效Excel数据处理?

二. Excel中的三大对象:

  • Workbook
  • Sheet
  • Cell

在excel中,主要的操作是在sheet中对数据进行读、写、修改的操作

操作流程:

1. 打开一个excel文件,或者创建一个excel文件,生成一个工作簿(workbook)对象

2. 获取某个表单(sheet)对象

3. 在表单对象中的单元格(cell)中读、写、修改数据

三. Excel库

python中有好几个与excel操作相关的模块

xlrd库:从excel中读取数据,支持xls, xlsx

xlwt库:对excel进行修改操作。不支持对xlsx格式的修改

xlutils库:在xlwt和xlrd中,对一个已存在的文件进行修改

官方说法:

openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files

网址:www.python-excel.org/

四. openpyxl--常用操作

from openpyxl import load_workbook

#打开一个已存在的excel文件

wb = load_workbook("sample.xlsx")

from openpyxl import Workbook

#创建一个新的excel文件

wb = Workbook("hello.xlsx")

#获取sheet对象,get_sheet_by_name是旧的方法,新的方法是wb[sheetname]

sh = wb.get_sheet_by_name("Sheet1")  

#创建一个新的sheet

sh_new = wb.create_sheet("新建的sheet")

#获取指定单元格中的值

cl = sh.cell(row=1, column=1).value

#修改指定单元格的值

sh.cell(row=1, column=1).value = "hello"

#获取当前sheet的数据总行数

rows = sh.max_row

#获取当前sheet的数据总列数

columns = sh.max_column

#保存当前workbook中所有的修改

wb.save("sample.xlsx")

注意:openpyxl中列和行的起始下标都是1

五. 实例

#引入库
from openpyxl import load_workbook

#加载一个excel文件,进入到工作簿
wb = load_workbook("testdata.xlsx")

#获取指定的表单
sh = wb["Sheet1"]

#获取表单中数据
name = sh.cell(row=2, column=1).value
print(name)

#修改表单中的数据--修改数据,注意在写操作时,必须先关闭excel文件
sh.cell(row=2, column=3).value = 18

#保存修改数据的操作--保存数据
wb.save("testdata.xlsx")

#获取总行数、总列数
print(sh.max_row)
print(sh.max_column)
print(sh.cell(row=3, column=3).value)
sh.cell(row=3, column=3).value = 25
print(sh.cell(row=3, column=3))

#读取所有数据,按行读取
for index in range(1, sh.max_row + 1):
print("行号: ", index)
for sub_i in range(1, sh.max_column + 1):
print("列号: ", sub_i, "内容: ", sh.cell(row=index, column=sub_i).value)


结果:
小翟
3
3
18
<Cell 'Sheet1'.C3>
行号: 1
列号: 1 内容: name
列号: 2 内容: sex
列号: 3 内容: age
行号: 2
列号: 1 内容: 小翟
列号: 2 内容: 男
列号: 3 内容: 18
行号: 3
列号: 1 内容: 瑛子
列号: 2 内容: 女
列号: 3 内容: 25

附excel内容:


本文共计924个文字,预计阅读时间需要4分钟。

Python如何实现高效Excel数据处理?

一. Excel在Python中的应用及数据存储在Python中,Excel文件的应用非常广泛,尤其在处理大量测试数据时。为了高效管理和使用这些数据,我们通常需要将数据存储在数据库中。这样,在测试时,可以直接从数据库中读取所需数据,提高测试效率。这一点非常重要!

二. 存储测试结果除了存储测试数据,我们还需要保存测试结果。这有助于后续分析和总结测试效果。

一. Excel在python中的应用

存测试数据

有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到。测试的时候就从数据库中读取出来。这点是非常重要的!

存测试结果

Python如何实现高效Excel数据处理?

二. Excel中的三大对象:

  • Workbook
  • Sheet
  • Cell

在excel中,主要的操作是在sheet中对数据进行读、写、修改的操作

操作流程:

1. 打开一个excel文件,或者创建一个excel文件,生成一个工作簿(workbook)对象

2. 获取某个表单(sheet)对象

3. 在表单对象中的单元格(cell)中读、写、修改数据

三. Excel库

python中有好几个与excel操作相关的模块

xlrd库:从excel中读取数据,支持xls, xlsx

xlwt库:对excel进行修改操作。不支持对xlsx格式的修改

xlutils库:在xlwt和xlrd中,对一个已存在的文件进行修改

官方说法:

openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files

网址:www.python-excel.org/

四. openpyxl--常用操作

from openpyxl import load_workbook

#打开一个已存在的excel文件

wb = load_workbook("sample.xlsx")

from openpyxl import Workbook

#创建一个新的excel文件

wb = Workbook("hello.xlsx")

#获取sheet对象,get_sheet_by_name是旧的方法,新的方法是wb[sheetname]

sh = wb.get_sheet_by_name("Sheet1")  

#创建一个新的sheet

sh_new = wb.create_sheet("新建的sheet")

#获取指定单元格中的值

cl = sh.cell(row=1, column=1).value

#修改指定单元格的值

sh.cell(row=1, column=1).value = "hello"

#获取当前sheet的数据总行数

rows = sh.max_row

#获取当前sheet的数据总列数

columns = sh.max_column

#保存当前workbook中所有的修改

wb.save("sample.xlsx")

注意:openpyxl中列和行的起始下标都是1

五. 实例

#引入库
from openpyxl import load_workbook

#加载一个excel文件,进入到工作簿
wb = load_workbook("testdata.xlsx")

#获取指定的表单
sh = wb["Sheet1"]

#获取表单中数据
name = sh.cell(row=2, column=1).value
print(name)

#修改表单中的数据--修改数据,注意在写操作时,必须先关闭excel文件
sh.cell(row=2, column=3).value = 18

#保存修改数据的操作--保存数据
wb.save("testdata.xlsx")

#获取总行数、总列数
print(sh.max_row)
print(sh.max_column)
print(sh.cell(row=3, column=3).value)
sh.cell(row=3, column=3).value = 25
print(sh.cell(row=3, column=3))

#读取所有数据,按行读取
for index in range(1, sh.max_row + 1):
print("行号: ", index)
for sub_i in range(1, sh.max_column + 1):
print("列号: ", sub_i, "内容: ", sh.cell(row=index, column=sub_i).value)


结果:
小翟
3
3
18
<Cell 'Sheet1'.C3>
行号: 1
列号: 1 内容: name
列号: 2 内容: sex
列号: 3 内容: age
行号: 2
列号: 1 内容: 小翟
列号: 2 内容: 男
列号: 3 内容: 18
行号: 3
列号: 1 内容: 瑛子
列号: 2 内容: 女
列号: 3 内容: 25

附excel内容: