我正在尝试根据列拆分 excel 电子表格并保留其中使用的公式。我正在使用 openpyxl 来读取公式,但在读取公式并按原样写入时卡住了,但我还需要根据新的拆分表来修改它们。我的代码如下:
enter code here
import pandas as pd
import os
from openpyxl import load_workbook
files = os.listdir("C:\\Users\\electrician\\Excel_Automation")
print("List of files: ")
for i in files:
print(i)
file_name = input("Enter the file name: ")
file = load_workbook(filename = file_name)
tabs = file.sheetnames
temp_dict1 = dict()
print("List of tabs: ")
for i,j in enumerate(tabs):
temp_dict1[i] = j
print(i,j)
tab_number = int(input("Enter tab number to split: "))
tab = pd.DataFrame(data=file[tabs[tab_number]].values)
temp_dict2 = dict()
print("List of columns: ")
for i,j in enumerate(tab[:1].values.tolist()[0]):
print(i,j)
column_number = int(input("Enter column number to split: "))
for i in set(tab[column_number]):
output_filename = temp_dict1[tab_number+1]+"_"+i+".xlsx"
df = tab[tab[column_number] == i].reset_index()
writer = pd.ExcelWriter("C:\\Users\\electrician\\Excel_Automation\\Output\\" + output_filename,engine='xlsxwriter')
for j in temp_dict1.values():
if j == temp_dict1[tab_number]:
df.to_excel(writer, sheet_name=output_filename, index=False)
else:
d = pd.DataFrame(data=file[j].values)
d.to_excel(writer,sheet_name=j,index=False)
writer.save()