使⽤openpyxl处理表格数据
导读你们都⼀定在⽣活中的某个时候使⽤过 Excel,并且⼀定觉得需要⾃动化在本教程中,我们将学习如何使⽤ Python 处理 Excel ⼀些重复或乏味的任务。
Openpyxl 是⼀个 Python 库,它提供了各种使⽤ Python 与 Excel ⽂件交互的⽅法。它允许读、写、算术运算、绘制图形等操作。
在8中安装⽅式如下:
[root@localhost ~]# yum -y install python3-openpyxl
从Excel表格中读取数据
如果要读取 Excel ⽂件,必须使⽤ load_workbook() ⽅法打开电⼦表格。之后可以使⽤ active 来选择第⼀个可⽤的⼯作表,并通过传递row 和 column 参数使⽤ cell() 属性来选择单元格。value 属性返回特定单元格的值。请参阅下⾯的⽰例以获得更好的理解。
注意:第⼀⾏或第⼀列整数是 1,⽽不是 0。
下⾯的数据可以保存在excel表格⽂件中,⽤来做下⾯的实验,⽂件名称为wb.xlsx:
Name Course Branch Semester
Ankit    B.Tech CSE4
Rahul M.Tech CSE2
Priya MBA HR3
Nikhil    B.Tech CSE4
Nisha    B.Tech Biotech5
[root@localhost data]# python3
# 导⼊openpyxl库
>>> import openpyxl
# path变量指定表格⽂件的位置
>>> path = "/data/wb.xlsx"
# 加载表格⽂件
>>> wb_obj = openpyxl.load_workbook(path)
# 激活默认的⼯作表
>>> sheet_obj = wb_obj.active
# 选择第⼀⾏第⼀列的单元格,也就是A1单元格
>>> cell_obj = ll(row = 1, column = 1)
# 打印单元格所属位置
>>> print(cell_obj)
<cell 'Sheet1'.A1>
# 打印A1单元格的值
>>> print(cell_obj.value)
Name
从多个单元格读取数据
从多个单元格中读取数据的⽅式有两种。
⽅法⼀:我们可以分别使⽤ max_row 和 max_column 获得总⾏数和总列数。我们可以在 for 循环中使⽤这些值来根据情况获取所需⾏或列或任何单元格的值。让我们看看如何获取第⼀列和第⼀⾏的值。
# 使⽤max_row获取⼯作表有多少⾏的数据
>>> row = sheet_obj.max_row
# 使⽤max_column获取⼯作表有多少列的数据
>>> column = sheet_obj.max_column
# 打印⾏数
>>> print("Total Rows: ", row)
Total Rows:  6
# 打印列数
>>> print("Total Cols: ", column)
Total Cols:  4
# 使⽤for循环打印第⼀列数据
>>> for i in range(1, row + 1):
...  cell_obj = ll(row = i, column = 1)
...  print(cell_obj.value)
.
..
Name
Ankit
Rahul
Priya
Nikhil
Nisha
# 使⽤for循环打印第⼆条数据:
python怎么读取excel文件数据
>>> for i in range(1, column + 1):
...  cell_obj = ll(row = 3, column = i)
...  print(cell_obj.value, end = " ")
.
..
Rahul M.Tech CSE 2
⽅法⼆:我们还可以使⽤单元格名称从多个单元格中读取。这可以看作是Python的列表切⽚。
# 选中A1到B6的单元格
>>> cell_obj = sheet_obj['A1':'B6']
>>>
# for⽞幻打印两列的数据
>>> for cell1, cell2 in cell_obj:
...  print(cell1.value, cell2.value)
...
Name Course
Ankit B.Tech
Rahul M.Tech
Priya MBA
Nikhil B.Tech
Nisha B.Tech
写⼊表格数据
⾸先,让我们创建⼀个新的表格,然后我们将⼀些数据写⼊新创建的⽂件。可以使⽤ Workbook() ⽅法创建⼀个空的表格。让我们看看下⾯的例⼦。
[root@localhost data]# python3
# 导⼊openpyxl库⾥⾯的Workbook
>>> from openpyxl import Workbook
>>>
# 创建空的⼯作簿
>>> workbook = Workbook()
>>>
# 保存⽂件
>>> workbook.save(filename="/data/sample.xlsx")
>>>
创建⼀个空⽂件后,让我们看看如何使⽤ Python 向其中添加⼀些数据。要⾸先添加数据,我们需要选择活动⼯作表,然后使⽤ cell() ⽅法,我们可以通过传递⾏号和列号作为其参数来选择任何特定的单元格。我们也可以使⽤单元格名称进⾏书写。
# 获取激活的⼯作表
>>> sheet = workbook.active
>>>
# 为A1添加Hello值
>>> c1 = ll(row = 1, column = 1, value = 'Hello')
# 为B1添加World值
>>> C2 = ll(row = 1, column = 2, value = 'World')
>>>
# 为A2添加Welcome值
>>> C3  = sheet['A2'].value = 'Welcome'
# 为B2添加Everyone值
>>> C4 = sheet['B2'].value = 'Everyone'
>>>
# 保存到⽂件
>>> workbook.save("/data/sample.xlsx")
附加数据到表格
在上⾯的⽰例中,您将看到每次尝试写⼊表格时,现有数据都会被覆盖,并且该⽂件将另存为新⽂件。发⽣这种情况是因为 Workbook()⽅法总是创建⼀个新的⼯作簿⽂件对象。要写⼊现有⼯作簿,必须使⽤ load_workbook() ⽅法打开⽂件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。