添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
难过的大熊猫  ·  PostgreSQL - VARCHAR ...·  14 小时前    · 
文质彬彬的草稿纸  ·  python dataframe ...·  17 小时前    · 
飞翔的鸵鸟  ·  select2·  昨天    · 
跑龙套的筷子  ·  Donguri Republic ...·  6 月前    · 
干练的墨镜  ·  Graph Neural ...·  9 月前    · 
活泼的牛肉面  ·  django之register_model( ...·  11 月前    · 

本文讲解如何使用 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