使用Python更改Excel中的值
在本文中,我们将学习使用Python更改Excel表格中数据值的不同方法。
Openpyxl
Openpyxl是一个用于处理Excel电子表格的Python库。它是一个流行的选择,因为它易于使用,拥有活跃的开发者社区,并提供了许多处理电子表格的功能。
Openpyxl允许你使用Python创建、读取、写入和修改Excel文件。它支持以下文件格式:
XLSX(Microsoft Excel开放XML电子表格)
XLSM(Microsoft Excel开放XML宏启用电子表格)
XLTM(Microsoft Excel开放XML宏启用模板)
XLTX(Microsoft Excel开放XML模板)
以下是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**。
为了能够运行下面的代码,首先需要在我们的机器上安装Openpyxl库。
要安装Openpyxl,只需运行以下命令:
命令: `pip install openpyxl`
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文件中任何工作表的标题名称。你还可以修改代码来更改工作表的其他方面,例如单元格值、格式或添加新的行和列。
要运行上面的代码,只需运行以下命令:
命令: `pip install openpyxl`
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,因为我们想要更改第三列中存在的标题的值。
要运行上面的代码,只需运行以下命令:
命令: `pip install openpyxl`
python3 main.py
一旦我们在终端运行上述命令,我们将在输出中得到一个新的Excel文件。
输出:(此处应插入输出图片)
使用xlwt/xlrd/xlutils
让我们首先详细讨论这些包。
xlwt、xlrd和xlutils库是用于处理Excel文件的Python模块。这些库可用于在Python中读取、写入和操作Excel电子表格。
xlrd
xlrd是一个可用于从Excel文件提取数据的库。它能够读取.xls格式的Excel文件。xlrd提供许多从电子表格读取数据的函数,包括:
xlrd.open_workbook(filename, on_demand=False, formatting_info=False):此函数用于打开Excel文件,并返回xlrd.book.Book类的实例。on_demand参数可用于控制是否将整个电子表格加载到内存中。formatting_info参数用于启用或禁用格式信息的解析。
book.sheets():此函数返回xlrd.sheet.Sheet对象的列表,每个对象代表工作簿中的一个工作表。
sheet.nrows和sheet.ncols:这些属性分别返回工作表中的行数和列数。
xlwt
xlwt是一个可用于创建和写入.xls格式Excel文件数据的库。它提供许多用于创建和写入电子表格数据的函数,包括:
xlwt.Workbook(encoding='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 文件。
要运行上面的代码,只需运行以下命令:
命令: `pip install openpyxl`
python3 main.py
一旦我们在终端运行上述命令,我们将在输出中得到一个新的Excel文件。
输出:(此处应插入输出图片)
结论
总而言之,Python 提供了多个用于处理 Excel 文件的库,包括 xlrd、xlwt 和 xlutils。这些库允许我们使用 Python 代码读取、写入和修改 Excel 文件。
在本例中,我们使用这些库更改了 Excel 表格中标题的值。此过程包括使用 xlrd 打开 Excel 文件,查找要更改的标题的索引,使用 xlutils 创建工作簿的副本,使用 xlwt 修改副本工作表中标题的值,然后将修改后的工作簿保存到新文件。
借助这些强大的库,我们可以自动化复杂的 Excel 任务并将它们集成到更大的 Python 应用程序中,从而更轻松地处理和分析存储在 Excel 文件中的数据。