python+openpyxl操作excel?

如何使用python+openpyxl,在不改变表格其他原始数据情况下,向excel中插入一列新数据?

阅读 6.1k
2 个回答
#coding:utf-8
from openpyxl import load_workbook
wb = load_workbook('sample.xlsx')
sheetnames=wb.get_sheet_names()
ws = wb.get_sheet_by_name(sheetnames[0])
data=['姓名','杰克','里斯','安妮']
for i in range(len(data)):
    ws['B%d'%(i+1)]=data[i]
wb.save('sample.xlsx')

原本sample.xls是这样的
clipboard.png
添加完是这样的
clipboard.png
如果想插入的话,那么你应该把你想插入的那一列后面的列全部在内存中备份一下,然后全部重新放进去吧。好像挺麻烦的,不过总是能实现。
我有更好的方法推荐给你,直接赋值就行,绝不会破坏其它数据,要在某一列之间插入的话,只要直接插入就行了。
用pandas

import pandas as pd
df=pd.read_excel('sample.xlsx')
print df
df['姓名']=['杰克','里斯','安妮']
#或者执行插入df.insert(1,'姓名',['杰克','里斯','安妮'])  1就是列的序号
df.to_excel('sample.xlsx')

openpyxl是不是不支持数据透视表,修改数据之后,数据透视表丢失了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题