I am trying to split excel spreadsheet based on columns and retain the formulas used in it. I was using openpyxl to read the formulas but got stuck as it reads formulas and write as it is but i need to modify them as well depending upon new splitted sheets. My code is as :
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()