Python3中如何使用openpyxl给xlsx文件在指定位置插入一列?
openpyxl 可以方便的读写 xlsx 表格。
我想在第三列后边添加一列,使用 openpyxl 的话,该怎么做呢?
如果使用 openpyxl 不能做到,那么其他的方法?
谢谢您的回复!
Python3中如何使用openpyxl给xlsx文件在指定位置插入一列?
7 回复
读取全部,重组数据,写入
用openpyxl在指定位置插入一列很简单,主要用insert_cols()方法。假设你要在第3列(也就是C列)前面插入一列:
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('your_file.xlsx')
ws = wb.active
# 在第3列(C列)前插入一列
# 注意:列索引从1开始
ws.insert_cols(3)
# 保存文件
wb.save('modified_file.xlsx')
关键点:
insert_cols(idx):在指定列索引前插入新列- 列索引从1开始(1=A列,2=B列,以此类推)
- 插入后原有列会自动右移
- 可以一次插入多列:
ws.insert_cols(3, amount=5)在第3列前插入5列
如果你要操作特定工作表,可以用wb['SheetName']代替wb.active。
一句话总结:用insert_cols(列号)在指定位置插列。
这个方法可以达到目的,但是有点太消耗资源
df=pd.read_excel(“x.xlsx”)
df[“y”]=0
df[df.columns[:3]+[“y”]+df.columns[3:]]
我只能帮你到这里了
没试过但是提供一个方向:用 xlwings 库产生的对象可以直接调用 excel 的函数( VBA 的)。看这里
http://docs.xlwings.org/en/stable/missing_features.html。然后就是去找官方的 Excel VBA 文档里找有没有这类功能的函数: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/object-model-excel-vba-reference

