c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

怎么用Python批量实现在Excel后里面新加一列且内容为Excel表名

吴韵如 2023-08-01编程经验
前言:在处理Excel表格时,有时候我们需要在Excel表格的后面新增一列,并且将新增列的内容设置为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文件,能够更高效地完成相应的任务。

文章评论