当前位置:首页 > 网站源码 > 正文内容

selenium获取表格数据(selenium获取表格数据不全)

网站源码1年前 (2023-11-18)273

你们都一定在生活中的某个时候使用过 Excel,并且一定觉得需要自动化在本教程中,我们将学习如何使用 Python 处理 Excel 一些重复或乏味的任务。

Openpyxl 是一个 Python 库,它提供了各种使用 Python 与 Excel 文件交互的方法。它允许读、写、算术运算、绘制图形等操作。

在Centos8中安装方式如下:

[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

CSE

4

Rahul

M.Tech

CSE

2

Priya

MBA

HR

3

Nikhil

B.Tech

CSE

4

Nisha

B.Tech

Biotech

5

[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 = sheet_obj.cell(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 = sheet_obj.cell(row = i, column = 1)

... print(cell_obj.value)

...

Name

Ankit

Rahul

Priya

Nikhil

Nisha

# 使用for循环打印第二条数据:

>>> for i in range(1, column + 1):

... cell_obj = sheet_obj.cell(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 = sheet.cell(row = 1, column = 1, value = 'Hello')

# 为B1添加World值

>>> C2 = sheet.cell(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方法打开文件。

[root@localhost data]# python3

>>> import openpyxl

>>>

# 使用load_workbook加载文件

>>> wb = openpyxl.load_workbook("/data/sample.xlsx")

>>>

>>> sheet = wb.active

>>>

>>> c = sheet['A3']

>>>

>>> c.value = 'New Data'

>>>

>>> wb.save("/data/sample.xlsx")

我们还可以使用 append方法在工作表的末尾附加多个数据。

# 定义数据

>>> data = (

... (1,2,3),

... (4,5,6)

... )

>>>

# 使用for循环将内容附加到工作表中

>>> for row in data:

... sheet.append(row)

...

>>> wb.save('/data/sample.xlsx')

Excel表格的算术运算

可以通过在电子表格的特定单元格中键入公式来执行算术运算。例如,如果我们想求和,则使用 Excel 文件的 =Sum公式。

[root@localhost data]# python3

>>> import openpyxl

>>>

# 创建新工作簿

>>> wb = openpyxl.Workbook

>>>

>>> sheet = wb.active

>>>

# 在单元格中写入数据

>>> sheet['A1'] = 200

>>> sheet['A2'] = 300

>>> sheet['A3'] = 400

>>> sheet['A4'] = 500

>>> sheet['A5'] = 619

# 在A7单元格求和

>>> sheet['A7'] = '=SUM(A1:A5)'

>>>

# 保存文件名称为sum.xlsx

>>> wb.save('/data/sum.xlsx')

调整单元格的行和列

工作表对象具有控制行高和列宽的 row_dimensions和 column_dimensions属性。工作表的 row_dimensions和 column_dimensions是类似字典的值;row_dimensions包含 RowDimension对象, column_dimensions包含 ColumnDimension对象。在 row_dimensions中,可以使用行号(在本例中为 1 或 2)访问其中一个对象。在 column_dimensions中,可以使用列的字母(在本例中为 A 或 B)访问其中一个对象。

[root@localhost data]# python3

# 导入模块

>>> import openpyxl

>>>

# 创建新工作簿

>>> wb = openpyxl.Workbook

>>>

>>> sheet = wb.active

>>>

# 向A1单元格写入数据

>>> sheet.cell(row = 1, column = 1, value = ' Hello ')

<cell 'Sheet'.A1>

# 向B2单元格写入数据

>>> sheet['B2'].value = ' Everyone '

>>>

# 设置第一行单元格高度为45

>>> sheet.row_dimensions[1].height = 45

>>>

# 设置B列单元格宽度为70

>>> sheet.column_dimensions['B'].width = 70

>>>

>>> wb.save('/data/h_and_w.xlsx')

合并单元格

可以使用 merge_cells方法将多个单元格合并为单个单元格。

[root@localhost data]# python3

>>> import openpyxl

>>> wb = openpyxl.Workbook

>>> sheet = wb.active

# 合并A2到D4单元格,并添加数据

>>> sheet.merge_cells('A2:D4')

>>> sheet['A2'].value = 'Twelve cells join together.'

>>>

# 合并C6到D6单元格,并添加数据

>>> sheet.merge_cells('C6:D6')

>>> sheet['C6'].value = 'Two merge cells.'

>>>

>>> wb.save('/data/merge_cells.xlsx')

取消合并单元格

如要取消合并单元格,请用 unmerge_cells方法。

# 取消合并A2到D4单元格

>>> sheet.unmerge_cells('A2:D4')

>>>

# 取消合并C6到D6单元格

>>> sheet.unmerge_cells('C6:D6')

>>>

>>> wb.save('/data/merge_cells.xlsx')

设置字体样式

要自定义单元格中的字体样式,重点是从 openpyxl.styles模块导入 Font函数。

[root@localhost data]# python3

>>> import openpyxl

# 从openpyxl.styles导入Font函数

>>> from openpyxl.styles import Font

>>>

>>> wb = openpyxl.Workbook

>>> sheet = wb.active

>>>

# 为A1单元格添加内容,并设置字体大小为24

>>> sheet['A1'].value = ' Linuxprobe.com'

>>> sheet['A1'].font = Font(size = 24)

# B2单元格添加内容,设置字体大小24,斜体

>>> sheet.cell(row = 2, column = 2, value = "Linuxprobe.com").font = Font(size = 24, italic = True)

# C3单元格添加内容,设置字体大小24,粗体

>>> sheet.cell(row = 3, column = 3, value ="Linuxprobe.com").font = Font(size = 24, bold = True)

# D4单元格添加内容,设置字体大小24,设置字体样式

>>> sheet.cell(row = 4, column = 4, value = "Linuxprobe.com").font = Font(size = 24, name = 'Times New Roman')

>>> wb.save('/data/font_styles.xlsx')

绘制图表

要在 Excel 表格上绘制图表,首先要创建特定图表类(即 BarChart、LineChart 等)的图表对象。创建图表对象后,在其中插入数据,最后将该图表对象添加到工作表中。

[root@localhost data]# python3

>>> import openpyxl

# 导入图表库

>>> from openpyxl.chart import BarChart, Reference

>>>

>>> wb = openpyxl.Workbook

>>> sheet = wb.active

>>>

# 使用循环为工作表附加内容

>>> for i in range(10):

... sheet.append([i])

...

# 为图表创建数据

>>> values = Reference(sheet, min_col=1,min_row=1,max_col=1,max_row=10)

#创建图表实例

>>> chart = BarChart

# 向条形图添加数据

>>> chart.add_data(values)

# 添加图表标题

>>> chart.title = " BAR-CHART "

# 添加X坐标标题

>>> chart.x_axis.title = " X_AXIS "

# 添加Y坐标标题

>>> chart.y_axis.title = " Y_AXIS "

>>>

# 工作表的E2单元格添加图表

>>> sheet.add_chart(chart, 'E2')

>>>

>>> wb.save("/data/charts.xlsx")

下面实例,是添加折线图:

[root@localhost data]# python3

>>> import openpyxl

# 导入图表库

>>> from openpyxl.chart import LineChart, Reference

>>>

>>> wb = openpyxl.Workbook

>>> sheet = wb.active

>>>

# 使用循环为工作表附加内容

>>> for i in range(10):

... sheet.append([i])

...

# 为图表创建数据

>>> values = Reference(sheet, min_col=1,min_row=1,max_col=1,max_row=10)

#创建图表实例

>>> chart = LineChart

# 向折现图添加数据

>>> chart.add_data(values)

# 添加图表标题

>>> chart.title = " LINE-CHART "

# 添加X坐标标题

>>> chart.x_axis.title = " X_AXIS "

# 添加Y坐标标题

>>> chart.y_axis.title = " Y_AXIS "

>>>

# 工作表的E2单元格添加图表

>>> sheet.add_chart(chart, 'E2')

>>>

>>> wb.save("/data/charts.xlsx")

添加图片

为了在我们的工作表中导入图像,我们将使用 openpyxl.drawing.image.Image。该方法是在pillow库中找到的 PIL.Image 方法。因此,必须安装 python3-pillow库才能使用此方法。

[root@localhost data]# yum -y install python3-pillow

[root@localhost data]# python3

>>> import openpyxl

# 导入Image函数

>>> from openpyxl.drawing.image import Image

selenium获取表格数据(selenium获取表格数据不全)

>>>

>>> wb = openpyxl.Workbook

>>> sheet = wb.active

>>>

# 向工作表第一行添加内容

>>> sheet.append(["abc",10,"def",20])

# 添加图片

>>> img = Image("/data/banner1.jpg")

>>>

>>> sheet.add_image(img, 'A2')

>>>

>>> wb.save("/data/images.xlsx")

总 结

本文讲述了如何使用Python和openpyxl库读取和写入Excel表格数据、计算、单元格设置、绘制图表和添加突变等操作。

END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

(新群,火热加群中……)

扫描二维码推送至手机访问。

版权声明:本文由我的模板布,如需转载请注明出处。


本文链接:http://60200875.com/post/40067.html

分享给朋友:

“selenium获取表格数据(selenium获取表格数据不全)” 的相关文章

手机上的软件不见了怎么找(手机上的软件不见了,又能用怎么找出来)

手机上的软件不见了怎么找(手机上的软件不见了,又能用怎么找出来)

今天给各位分享手机上的软件不见了怎么找的知识,其中也会对手机上的软件不见了,又能用怎么找出来进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、我的手机桌面上的软...

微信公众平台营销实践结论与反思(微信公众号实践总结)

微信公众平台营销实践结论与反思(微信公众号实践总结)

本篇文章给大家谈谈微信公众平台营销实践结论与反思,以及微信公众号实践总结对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、微信营销成功案例分享5篇 2、如何运营微信公众平...

宇宙少女歌曲免费听(宇宙少女全部歌曲)

宇宙少女歌曲免费听(宇宙少女全部歌曲)

本篇文章给大家谈谈宇宙少女歌曲免费听,以及宇宙少女全部歌曲对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、宇宙少女 - Secretmp3,谁有 2、宇宙少女新歌在哪里...

农村两层楼房装修要几万(农村两层楼房装修要几万块钱)

农村两层楼房装修要几万(农村两层楼房装修要几万块钱)

今天给各位分享农村两层楼房装修要几万的知识,其中也会对农村两层楼房装修要几万块钱进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、农村盖个二层楼房要多少资金?...

直播8手机版(直播8手机版CBA)

直播8手机版(直播8手机版CBA)

今天给各位分享直播8手机版的知识,其中也会对直播8手机版CBA进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、手机上看直播世界杯怎么弄啊?谢谢 2、直播8...

金螳螂装修报价表明细(装修报价单明细表完整 清单)

金螳螂装修报价表明细(装修报价单明细表完整 清单)

今天给各位分享金螳螂装修报价表明细的知识,其中也会对装修报价单明细表完整 清单进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、金螳螂装修公司中国排名第几...