怎么用Python批量实现在Excel后里面新加一列且内容为Excel表名
前言:
在处理Excel表格时,有时候我们需要在Excel表格的后面新增一列,并且将新增列的内容设置为Excel表格的名称。如果有大量的Excel表格需要处理,手动操作无疑会非常繁琐和耗时,这时我们可以使用Python来批量实现这一功能。Python中有很多强大的库可以帮助我们操作Excel文件,例如openpyxl和xlrd。
方案一:使用openpyxl库
首先,我们需要安装openpyxl库,可以通过以下命令来安装:
pip install openpyxl
接下来,我们可以通过以下代码来实现在Excel后里面新加一列,并将内容设置为Excel表名:
import openpyxl import os # 获取当前目录下的所有Excel文件 files = [file for file in os.listdir('.') if file.endswith('.xlsx')] for file in files: # 打开Excel文件 wb = openpyxl.load_workbook(file) # 获取第一个工作表 sheet = wb.active # 获取Excel文件名,不包括扩展名 file_name = os.path.splitext(file)[0] # 获取Excel文件名,包括扩展名 # file_name = os.path.basename(file) # 在最后一列后插入新列 sheet.insert_cols(sheet.max_column + 1) # 获取新插入列的索引 new_col_index = sheet.max_column # 设置新插入列的标题 sheet.cell(row=1, column=new_col_index, value='Excel表名') # 设置新插入列的内容为Excel表名 for row in range(2, sheet.max_row + 1): sheet.cell(row=row, column=new_col_index, value=file_name) # 保存修改后的Excel文件 wb.save(file)
上述代码中首先使用os模块获取当前目录下的所有Excel文件,然后遍历每个文件,使用openpyxl库打开Excel文件。接下来,我们插入一列,获取新插入列的索引,设置新插入列的标题,以及将新插入列的内容设置为Excel表名。最后,保存修改后的Excel文件。
方案二:使用xlrd和xlwt库
如果你想在处理Excel文件时不安装额外的库,也可以使用xlrd和xlwt这两个标准库来完成。这里是用Python批量实现在Excel后里面新加一列且内容为Excel表名的代码示例:
import xlrd import xlwt import os # 获取当前目录下的所有Excel文件 files = [file for file in os.listdir('.') if file.endswith('.xls')] for file in files: # 打开Excel文件 workbook = xlrd.open_workbook(file) # 获取第一个Sheet sheet = workbook.sheet_by_index(0) # 获取Excel文件名,不包括扩展名 file_name = os.path.splitext(file)[0] # 在最后一列后插入新列 new_col_index = sheet.ncols for row in range(sheet.nrows): sheet.put_cell(row, new_col_index, xlrd.XL_CELL_TEXT, file_name, None) # 创建一个新的工作簿 new_workbook = xlwt.Workbook() # 创建一个新的Sheet new_sheet = new_workbook.add_sheet('Sheet1') # 复制原来的Sheet内容到新的Sheet for row in range(sheet.nrows): for col in range(sheet.ncols): new_sheet.write(row, col, sheet.cell_value(row, col)) # 设置新插入列的标题 new_sheet.write(0, new_col_index, 'Excel表名') # 保存修改后的Excel文件 new_workbook.save(file)
上述代码中首先使用os模块获取当前目录下的所有Excel文件,然后遍历每个文件,使用xlrd库打开Excel文件。接下来,我们插入一列,获取新插入列的索引,设置新插入列的标题,以及将新插入列的内容设置为Excel表名。最后,使用xlwt库创建一个新的工作簿和新的Sheet,并将原来的Sheet内容复制到新的Sheet中,保存修改后的Excel文件。
总结:
通过使用Python中的openpyxl和xlrd/xlwt库,我们可以很方便地实现批量将Excel表格后面新增一列,并将内容设为Excel表名。openpyxl库提供了更简洁的操作Excel文件的方式,而xlrd和xlwt库是Python标准库,无需额外安装即可使用,适用于不想安装额外库的情况。根据自己的需求选择适合的库来处理Excel文件,能够更高效地完成相应的任务。