我正在尝试使用Pandas更新现有的Excel文件。
这个文件有几张:
我使用此代码更新excel文件的第一张,但保留其他表:
disq_df = pd.DataFrame(disqualifications)
writer = pd.ExcelWriter(args.output, engine='openpyxl')
if os.path.exists(args.output):
f, ext = os.path.splitext(args.output)
shutil.copyfile(args.output, f + "-saved" + ext)
writer.book = load_workbook(args.output)
writer.sheets = dict((ws.title, ws) for ws in writer.book.worksheets)
disq_df.to_excel(writer, sheet_name=args.sheet)
writer.save()
这大部分工作正常(只修改了第一张表),除了其他表上的数据透视表实际上是标准单元格。我也在一些纸张上也有图形消失了。
有没有办法让这些床单完全不变?或者它是openpyxl
的限制?
这是工作表的摘录:https://www.dropbox.com/s/dd3jhiif93knh26/Disqualifications.xlsx?dl=0。
相应的disq_df
数据框只是来自dicts:
disq_df = pd.DataFrame({'Année naissance': {0: 2005, 1: 2006},
'Catégorie': {0: 'Poussin', 1: 'Poussin'},
'Club': {0: "CERCLE NAGEURS D'ANTIBES", 1: "CERCLE NAGEURS D'ANTIBES"},
'Compétition': {0: 'Natathlon poussins N° 2', 1: 'Natathlon poussins N° 2'},
'Date': {0: '2016-02-27 15:17:00', 1: '2016-02-27 15:49:50'},
'Disqualification': {0: 'DSQ Vi', 1: 'DSQ Ni'},
'Disqualification (libellé)': {0: 'Disqualifié pour Virage incorrect',
1: 'Disqualifié pour Nage incorrecte'},
'Ligne': {0: 2, 1: 1},
'Nage': {0: 'Nage Libre', 1: 'Dos'},
'Nage (Complet)': {0: '400 Nage Libre Messieurs', 1: '50 Dos Dames'},
'Niveau': {0: 'Compétitions Départementales',
1: 'Compétitions Départementales'},
'Sexe': {0: 'M', 1: 'F'},
'Série': {0: 1, 1: 3}})
答案 0 :(得分:1)
Openpyxl无法轻松处理样式和图形。见Use openpyxl to edit a Excel2007 file (.xlsx) without changing its own styles?
它为您提供了显示how to use win32com来执行此操作的链接。
您还可以尝试xlwings进行一些基本操作。我相信它们都要求你让Excel实际安装不幸。
答案 1 :(得分:0)
根据这个:https://openpyxl.readthedocs.org/en/2.3.3/#installation你还需要安装枕头($ pip install pillow)