Python 在Excel中更改值
在本文中,我们将学习使用Python可以改变Excel表格中数据值的不同方法。
Openpyxl
Openpyxl是一个用于处理Excel电子表格的Python库。它是在Python中处理Excel文件的常用选择,因为它易于使用,拥有活跃的开发者社区,并提供了许多用于处理电子表格的特性。
Openpyxl允许您使用Python创建、读取、写入和修改Excel文件。它支持以下文件格式:
- XLSX(Microsoft Excel Open XML Spreadsheet)
-
XLSM(Microsoft Excel Open XML Macro−Enabled Spreadsheet)
-
XLTM(Microsoft Excel Open XML Macro−Enabled Template)
-
XLTX(Microsoft Excel Open XML Template)
这里是openpyxl的一些主要特性:
- 读写Excel文件: 使用openpyxl,您可以轻松地读写Excel文件。这包括从头开始创建新文件,修改现有文件以及保存更改。
-
数据操作: Openpyxl允许您操作Excel电子表格中的数据。这包括对数据进行排序、筛选和格式化,以及执行计算和聚合操作。
-
单元格操作: Openpyxl提供了一种简单的方式来操作Excel电子表格中的单元格。您可以设置单元格的值、应用格式,并向单元格添加公式。
-
图表: Openpyxl支持创建和修改Excel图表。您可以从头开始创建图表或修改现有图表。
-
中心表: Openpyxl支持中心表,允许您分析Excel电子表格中的数据。
-
保护: Openpyxl允许您通过添加密码保护来保护Excel文件。
-
兼容性: Openpyxl与Python 3.6及更高版本兼容,并可在Windows、Linux和Mac OS X操作系统上使用。
总的来说,openpyxl是一个强大而灵活的库,使得在Python中处理Excel文件变得简单。无论您需要从Excel文件中读取数据、创建新的电子表格还是进行复杂的数据分析,openpyxl都有您完成工作所需的工具。
现在我们已经对openpyxl有了一定的了解,让我们探索一个示例,其中我们将更改Excel表格中第一列的第一行标题的值。
当前的Excel表格如下所示:
现在我们的目标是将值为 RiskName 的第一列的第一个标题更改为 TutorialsPoint 。
为了能够运行下面的代码,我们首先需要在我们的计算机上安装openxypl库。
要安装openxypl,只需运行下面显示的命令。
命令
pip3 install openxypl
注意: 如果你使用的是较旧的python版本,你可以运行pip install openpyxl命令。
考虑下面的代码示例。
示例
# import the openpyxl library
import openpyxl
# open the Excel file
workbook = openpyxl.load_workbook('workbook.xlsx')
# select the sheet to modify
sheet = workbook['Sheet1']
# change the header name
sheet.cell(row=1, column=1).value = 'TutorialsPoint'
# save the changes
workbook.save('example.xlsx')
解释
在这个示例中,我们首先导入openpyxl库。然后使用load_workbook()方法加载Excel文件’workbook.xlsx’。
接下来,我们根据工作表名称(在这种情况下为’Sheet1’)选择要修改的工作表。然后,我们将位于第1行第1列(对应于第一个标题单元格)的单元格的值更改为’TutorialsPoint’。
最后,我们使用save()方法将更改保存到Excel文件中。
请注意,这只是一个基本示例,您可以修改代码以更改Excel文件中任何工作表的标题名称。您还可以修改代码以更改工作表的其他方面,如单元格值、格式或添加新行和列。
要运行上述代码,只需运行下面显示的命令。
命令
python3 main.py
一旦我们在终端上运行上述命令,将会在输出中得到一个新的Excel文件。
输出
从上面的图像中,可以看到第一列第一个表头的名称现在已更改为”TutorialsPoint”,而不是”RiskName”。
现在,让我们尝试将MemberID列的值更改为”TutorialsPoint”。
这非常简单,我们只需将代码中传递给cell方法的列关键字的值更改为3。
考虑下面显示的更新代码。
示例
# import the openpyxl library
import openpyxl
# open the Excel file
workbook = openpyxl.load_workbook('workbook.xlsx')
# select the sheet to modify
sheet = workbook['Sheet1']
# change the header name
sheet.cell(row=1, column=3).value = 'TutorialsPoint'
# save the changes
workbook.save('example.xlsx')
说明
之前的代码和上面的代码唯一的区别是列关键字的值被更改为3,因为我们想要更改位于第三列的标题的值。
要运行上面的代码,只需运行下面显示的命令。
命令
python3 main.py
一旦我们在终端中运行上述命令,我们将在输出中获得一个新的Excel文件。
输出
使用xlwt / xlrd / xlutils
让我们首先详细讨论这些软件包。
xlwt,xlrd和xlutils库是用于处理Excel文件的Python模块。 这些库可用于在Python中读取,写入和操作Excel电子表格。
xlrd
xlrd是一个可用于从Excel文件中提取数据的库。 它能够读取以 .xls 格式的Excel文件。 xlrd提供了许多用于从电子表格中读取数据的函数,包括:
- xlrd.open_workbook(文件名,按需=False,格式化信息=False) :此函数用于打开Excel文件并返回xlrd.book.Book类的实例。 on_demand参数可用于控制是否将整个电子表格加载到内存中。 formatting_info参数用于启用或禁用格式信息的解析。
-
book.sheets() :此函数返回一个xlrd.sheet.Sheet对象的列表,每个对象代表工作簿中的一个工作表。
-
sheet.nrows和sheet.ncols :这些属性分别返回工作表中的行数和列数。
xlwt
xlwt是一个可用于创建和写入以 .xls 格式的Excel文件的库。 它提供了许多用于创建和写入数据至电子表格的函数,包括:
- xlwt.Workbook(编码=’utf−8’) :此函数创建一个新的xlwt.Workbook对象,表示一个新的Excel文件。
-
workbook.add_sheet(sheetname,cell_overwrite_ok=False) :此函数使用指定的名称创建一个新的工作表,并返回一个xlwt.Worksheet对象。
-
worksheet.write(row,col,value,style=None) :此函数将值写入指定行和列的单元格。 style参数可用于对单元格应用格式。
xlutils
xlutils是一个提供一些用于处理Excel文件的实用功能的库。 它包括用于复制工作表,复制单元格等功能。 xlutils中的主要类和函数有:
- xlutils.copy.copy :此函数可用于通过复制现有文件来创建新的Excel文件。
-
xlutils.copy.copy_worksheet :此函数可用于将一个工作表从一个工作簿复制到另一个工作簿。
-
xlutils.copy.cell :此函数可用于将一个工作表中的单元格的内容和格式复制到另一个工作表中。
现在,我们已经详细讨论了这些软件包,让我们使用一个代码,在其中我们将在Python代码中使用它们。
考虑下面显示的代码。
示例
import xlrd
import xlwt
from xlutils.copy import copy
# Open the Excel file and get the first sheet
workbook = xlrd.open_workbook("workbook.xls")
sheet = workbook.sheet_by_index(0)
# Find the column index of the header you want to change
header_col = None
for col in range(sheet.ncols):
if sheet.cell_value(0, col) == "First Name":
header_col = col
break
# If the header was found, change its value
if header_col is not None:
# Create a new workbook and copy the existing sheet
new_workbook = copy(workbook)
new_sheet = new_workbook.get_sheet(0)
# Set the value of the header in the copied sheet
new_sheet.write(0, header_col, "TutorialsPoint")
# Save the new workbook to a file
new_workbook.save("workbook_modified.xls")
解释
我们首先导入必要的模块:
- xlrd:这个模块用于从Excel文件中读取数据。
-
xlwt:这个模块用于将数据写入Excel文件。
-
xlutils:这个模块提供了修改现有Excel文件的方式。
-
我们使用xlrd.open_workbook()打开要修改的Excel文件,并使用workbook.sheet_by_index(0)获取第一个工作表。
-
通过迭代第一行的列来查找我们要更改的标题的列索引,使用for循环和sheet.cell_value(row, col)来获取单元格的值。
-
如果找到了标题,我们使用xlutils的copy()创建一个新的工作簿,并使用new_workbook.get_sheet(0)将现有工作表复制到其中。
-
然后,我们使用new_sheet.write(row, col, value)将标题的值设置为新值。
-
最后,我们使用new_workbook.save(filename)将修改后的工作簿保存为新文件。
就是这样!该程序演示了如何使用xlrd、xlwt和xlutils来通过更改标题的值来修改Excel文件。
要运行上述代码,我们只需要运行下面展示的命令。
命令
python3 main.py
在终端中运行上述命令后,我们将在输出中获得一个新的Excel文件。
输出
结论
总之,Python提供了几个用于处理Excel文件的库,包括xlrd、xlwt和xlutils。这些库允许我们使用Python代码读取、写入和修改Excel文件。
在这个特定的案例中,我们使用这些库来更改Excel表中标头的值。该过程涉及使用xlrd打开Excel文件,找到要更改的标头的索引,使用xlutils创建工作簿的副本,在副本表中使用xlwt修改标头的值,然后将修改后的工作簿保存到新文件中。
借助这些强大的库,我们可以自动化复杂的Excel任务,并将其集成到更大的Python应用程序中,从而更轻松地处理和分析存储在Excel文件中的数据。