web技术

Python如何在Excel中添加列、插入列

2023-10-13 15:30 作者:Admin原创

本文讲解如何使用 Python 在 Excel 工作表中添加列(追加一列)和插入列(在指定位置插入一列),可以使用 openpyxl 库来实现这个需求。

首先安装 openpyxl 库:

pip install openpyxl

一、在表格最右侧追加一列

Python 程序:

from openpyxl import load_workbook

def append_column(file_path,sheet_name,data):
    # 加载 Excel 文件
    workbook = load_workbook(file_path)
    # 选择工作表
    sheet = workbook[sheet_name]

    # 追加写入一列
    index = sheet.max_column + 1
    for i in range(len(data)):
        sheet.cell(row=i+1,column=index,value=data[i])

    # 保存工作簿
    workbook.save(file_path)

# 设置文件名和工作表名,大小写敏感
file_path = '测试的文件.xlsx'
sheet_name = 'Sheet1'

# 新增列数据
data = ['表头','数据A','数据B','数据C','数据D']
append_column(file_path,sheet_name,data)

在这段程序中,定义了函数 append_column(),并将数据列表 data 作为参数传给它。在自定义函数 append_column() 中,sheet.max_column 用于获取 Excel 表格是最大列数,sheet.max_colum + 1 表示新列的数字序号,然后在 for 循环中调用 sheet.cell() 函数依次将数据列表写入新列。最后保存工作簿。

二、在指定位置插入一列

插入列其实也是添加列,只不过它有位置的要求,稍微特殊一点。

Python 程序:

from openpyxl import load_workbook
from openpyxl.utils import column_index_from_string

def insert_column(file_path,sheet_name,data,col_letter):
    # 加载 Excel 文件
    workbook = load_workbook(file_path)
    # 选择工作表
    sheet = workbook[sheet_name]

    # 将字母序号转为数字序号
    index = column_index_from_string(col_letter)
    # 指定要插入的列位置
    sheet.insert_cols(index)
    # 插入列
    for i in range(len(data)):
        sheet[col_letter + str(i + 1)] = data[i]
        # 或 sheet.cell(row=i+1,column=index,value=data[i])

    # 保存工作簿
    workbook.save(file_path)

# 设置文件名和工作表名,大小写敏感
file_path = '测试的文件.xlsx'
sheet_name = 'Sheet1'

# 要插入的列的字母序号
col_letter = 'C'

# 新增列数据
data = ['表头','数据A','数据B','数据C','数据D']
insert_column(file_path,sheet_name,data,col_letter)

在这段程序中,我们需要指定新列要插入的位置 col_letter,用字母序号表示,本例中将新列位置设置为“C”。

在自定义函数 insert_column() 中,使用 openpyxl 库的 column_index_from_string() 函数将字母序号转换为数字序号,然后使用 sheet.insert_cols() 函数指定要插入的列位置,其参数就是刚转换过来的数字序号,然后在 for 循环中依次将数据列表写入新列。col_letter + str(i + 1) 合成单元格坐标,形如“C5”。最后保存工作簿。

标签: #openpyxl
推荐文章
如何批量修改文件名?你可能在网上搜到了许多方法,但操作起来并不简单,有...
同事找我帮忙,让我帮他写一个Python程序,用来删除Excel中的重复行。于是我...
如何使用Python在Excel中删除行?实际情景中往往是要求按条件删除、批量删除...
同事找我帮忙,希望能帮她写一个文件检测程序,运行程序就能快速找出被修改...
如何使用 Python 在 Excel 查找数据?如何实现模糊查找和精确查找?如何在一...
推荐专题
如何自己建网站?建网站难不难?其实建网站说难不难,说容易也并不容易,难...
本专题精心收集整理了多种HTML+CSS+JS轮播图实现方案,带详细代码和讲解,正...