快捷搜索:  汽车  科技

python对excel的骚操作(如何在Python中自动化)

python对excel的骚操作(如何在Python中自动化)手动处理或更新数以千计的电子表格将花费太多时间。这可能需要数小时、数天甚至数月。我们将编写一个 Python 程序来自动执行此任务。我们将处理下图中给出的电子表格。如果您已经了解 Python 的核心概念,那就太好了。我们将以带有一些条目的 Excel 工作表为例,我们将学习自动化过程。我们将编写一个 Python 程序,它可以在一秒钟内处理数千个电子表格。兴奋的???让我们开始吧…现在的问题是……“我怎样才能做到快速?” “我怎样才能使我的工作自动化?”无需手动执行此类任务,只需花一个小时编码并自动化此类工作,让您的生活更轻松。只需在 python 中编写更少的代码行,您就可以自动完成繁琐的任务。 在这篇博客中,我们将创建一个小项目来学习 Python 中的自动化。如果您是初学者,那么您可能更喜欢观看一些视频来学习 Python 中的自动化,阅读此博客对您来说可能是一项无聊的任务,但在

考虑一个场景,要求您在网站上为 30 000 名员工创建一个帐户。你觉得如何?当然,您会因手动重复执行此任务而感到沮丧。此外,这将花费太多时间,这不是一个明智的决定。

现在想象一下从事数据输入工作的员工的生活。他们的工作是从 Excel 或 Google Sheet 等表格中获取数据并将其插入到其他地方。他们浏览不同的网站和杂志,从那里收集数据,然后将其插入数据库。他们还需要对条目进行计算。

一般来说,收入是根据这份工作的表现而定的。更多的条目,更高的薪水(当然每个人都希望 在他们的工作中获得更高的薪水)。

但是你不觉得重复做同样的事情很无聊吗?

现在的问题是……“我怎样才能做到快速?” “我怎样才能使我的工作自动化?

无需手动执行此类任务,只需花一个小时编码并自动化此类工作,让您的生活更轻松。只需在 python 中编写更少的代码行,您就可以自动完成繁琐的任务。

在这篇博客中,我们将创建一个小项目来学习 Python 中的自动化。如果您是初学者,那么您可能更喜欢观看一些视频来学习 Python 中的自动化,阅读此博客对您来说可能是一项无聊的任务,但在这里我们将逐步详细解释所有内容并使事情变得更容易为你。

如果您已经了解 Python 的核心概念,那就太好了。我们将以带有一些条目的 Excel 工作表为例,我们将学习自动化过程。我们将编写一个 Python 程序,它可以在一秒钟内处理数千个电子表格。兴奋的???让我们开始吧…

任务简介

手动处理或更新数以千计的电子表格将花费太多时间。这可能需要数小时、数天甚至数月。我们将编写一个 Python 程序来自动执行此任务。我们将处理下图中给出的电子表格。

python对excel的骚操作(如何在Python中自动化)(1)

在这个电子表格中,我们有各种交易的记录,但是假设由于错误(人为错误或系统错误),第三列中列出的产品价格是错误的。假设我们需要将价格降低 10%(将价格乘以 0.9 并重新计算值)。您可以使用第四列中的数学公式手动执行此任务,但如果有数千条记录,则需要花费太多时间(可能需要 1 周或 2 周)。

我们将编写一个 python 程序来自动化这个过程。此外,我们将为其添加图表。我们的 python 程序将在几秒钟内为我们完成这项任务。

让我们进入编码区

为了处理这个 Excel 表格,我们将使用一个库openpyxl。在您的目录中创建一个文件夹,为其命名并通过在终端中执行以下命令来安装openpyxl包。

pip install openpyxl

现在我们可以导入这个包来处理我们的电子表格。在此之前将电子表格添加到您的项目文件夹中。现在在您的文件夹中创建一个文件 app.py 并记下下面给出的代码。

  • Python

import openpyxl as xl

from openpyxl.chart import BarChart Reference

wb = xl.load_workbook('python-spreadsheet.xlsx')

sheet = wb['Sheet1']

for row in range(2 sheet.max_row 1):

cell = sheet.cell(row 3)

corrected_price = float(cell.value.replace('$' '')) * 0.9

corrected_price_cell = sheet.cell(row 4)

corrected_price_cell.value = corrected_price

values = Reference(sheet min_row=2 max_row=sheet.max_row min_col=4 max_col=4)

chart = BarChart()

chart.add_data(values)

sheet.add_chart(chart 'e2')

wb.save('python-spreadsheet2.xlsx')

让我们理解上面的代码

我们将逐步解释上面编写的代码,以了解完整的过程。

步骤 1.处理我们的电子表格导入openpyxl包(我们使用 xl 别名来使我们的代码更简洁)。此外,要将图表添加到我们的电子表格中,我们需要导入两个类 BarChart 和 Reference。

import openpyxl as xl

from openpyxl.chart import BarChart Reference

第 2 步。现在我们需要加载 Excel 工作簿python-spreadhsheet.xlsx。写下下面给出的代码。wb 返回对象,使用此对象,我们正在从工作簿访问Sheet1

wb = xl.load_workbook('python-spreadsheet.xlsx')

sheet = wb['Sheet1']

第 3 步。要访问第三列(价格列的条目)中第 2 行到第 4 行的条目,我们需要在其中添加一个 for 循环。我们将此条目保存在变量单元格中。

for row in range(2 sheet.max_row 1):

cell = sheet.cell(row 3)

第 4 步。现在我们需要计算修正后的价格。所以我们将单元格变量中保存的值乘以0.9。计算完成后,我们需要将所有更正后的价格添加到新列(第 4 列)中。要添加新列,我们将获得对给定行中的单元格的引用,但在第四列中。创建单元格后,我们需要在此单元格(第四列)中设置更正的价格值。

Correct_price = float(cell.value.replace('$' '')) * 0.9

Corrected_price_cell = sheet.cell(row 4) Corrected_price_cell.value =

Corrected_price

第 5 步。工作完成了一半。我们已经计算了更新后的价格,并在第四列中添加了它。现在我们需要在当前工作表中添加一个图表。要创建图表,我们需要选择一系列值。

在这个项目中,我们将选择第四列(更新的价格)中的值,并将在我们的图表中使用它(我们只需要一堆数字来创建图表,所以我们以第四列为例。这个值可以是任何根据要求)。

我们需要使用参考类来选择一系列值。我们将为这个构造函数添加五个参数。第一个参数是我们正在处理的工作表。接下来的两个参数 min_row = 2 和 max_row= sheet.max_row 将选择第 2 行到第 4 行的单元格。要仅从第四列中选择条目,我们需要传递另外两个参数 min_col=4 和 max_col=4。将结果存储在变量“值”中。

values = Reference(sheet min_row=2 max_row=sheet.max_row min_col=4 max_col=4)

第 6 步。现在我们准备创建图表。我们将为 BarChart 类创建一个实例“图表”。创建完成后,在此图表中添加值。之后将此图表添加到工作表的第 2 行和第 5 列 (e2)。

chart = BarChart()

chart.add_data(values)

sheet.add_chart(chart 'e2')

第 7 步。现在我们需要保存所有更新的条目和我们在上面的代码中创建的图表。我们将把它保存在一个新文件python-spreadsheet2.xlsx中,因为我们不想意外覆盖原始文件,以防我们的程序出现错误。

运行您的程序,一切顺利。将为您创建一个新更新的文件python-spreadhsheet2.xlsx ,其中包含更新的价格和图表。下面是相同的屏幕截图。

python对excel的骚操作(如何在Python中自动化)(2)

第 8 步。我们的程序已经完成,但是如果您使用上面的代码,那么它不会自动处理数千个电子表格的过程。这个程序只依赖于一个特定的文件,即 python-spreadsheet.xlsx。

为了使它适用于多个电子表格,我们将重新组织此代码,并将代码移动到函数中。该函数将文件名作为输入并执行该过程。以下是相同的更新代码。

  • Python

import openpyxl as xl

from openpyxl.chart import BarChart Reference

def process_workbook(filename):

wb = xl.load_workbook(filename)

sheet = wb['Sheet1']

for row in range(2 sheet.max_row 1):

cell = sheet.cell(row 3)

corrected_price = float(cell.value.replace('$' '')) * 0.9

corrected_price_cell = sheet.cell(row 4)

corrected_price_cell.value = corrected_price

values = Reference(sheet min_row=2 max_row=sheet.max_row min_col=4 max_col=4)

chart = BarChart()

chart.add_data(values)

sheet.add_chart(chart 'e2')

wb.save(filename)

猜您喜欢: