7
7
import pandas as pd
8
8
from tkinter .filedialog import askopenfilename
9
9
from tkinter .filedialog import askdirectory
10
- from typing import Union
11
10
from pathlib import Path
12
11
13
12
def find_initial_dir () -> str :
@@ -74,11 +73,7 @@ def run(file_path: str, filename: str) -> None:
74
73
"""
75
74
76
75
try :
77
- download_default = str (os .path .join (Path .home (), "Downloads" ))
78
- # tk.Tk().withdraw()
79
- # folder = askdirectory(initialdir=download_default, title='Select Download Path')
80
- folder = download_default
81
-
76
+ folder = str (os .path .join (Path .home (), "Downloads" ))
82
77
p = core .Process (file_path )
83
78
spe_list = p .read_spe_file ()
84
79
@@ -94,7 +89,7 @@ def run(file_path: str, filename: str) -> None:
94
89
r .capture_student_name ()
95
90
r .capture_app_type ()
96
91
97
- # create_xlsx(translated_spe, filename)
92
+ create_xlsx (translated_spe , filename )
98
93
99
94
for idx , item in enumerate (translated_spe ):
100
95
_list = r .fit_student_data (item )
@@ -122,38 +117,35 @@ def create_xlsx(translated_spe: list, filename: str)-> None:
122
117
123
118
def merge_xlsx ()-> None :
124
119
# specifying the path to csv files
125
- path = str (os .path .join (Path .home (), "Downloads" ))
126
-
127
- # csv files in the path
128
- file_list = glob .glob (path + "/*.xlsx" )
129
-
130
- # list of excel files we want to merge.
131
- # pd.read_excel(file_path) reads the excel
132
- # data into pandas dataframe.
133
- excl_list = []
120
+ input_folder = str (os .path .join (Path .home (), "Downloads" ))
121
+ output_file = str (os .path .join (input_folder , 'total.xlsx' ))
134
122
135
- for file in file_list :
136
- excl_list .append (pd .read_excel (os .path .abspath (file )))
137
-
138
- # create a new dataframe to store the
139
- # merged excel file.
140
- excl_merged = pd .DataFrame ()
141
-
142
- for excl_file in excl_list :
143
-
144
- # appends the data into the excl_merged
145
- # dataframe.
146
- excl_merged = excl_merged .append (
147
- excl_file , ignore_index = True )
148
-
149
- # exports the dataframe into excel file with
150
- # specified name.
151
- excl_merged .to_excel (f'{ path } /total.xlsx' , index = False )
123
+ # Create a list to hold the dataframes
124
+ dfs = []
125
+
126
+ # Iterate over all Excel files in the specified folder
127
+ for file_name in os .listdir (input_folder ):
128
+ if file_name .endswith ('.xlsx' ) or file_name .endswith ('.xls' ):
129
+ file_path = os .path .join (input_folder , file_name )
130
+ # Read all sheets from the Excel file
131
+ xls = pd .ExcelFile (file_path , engine = 'openpyxl' )
132
+ for sheet_name in xls .sheet_names :
133
+ df = pd .read_excel (file_path , sheet_name = sheet_name )
134
+ dfs .append (df )
135
+
136
+ # Concatenate all dataframes into one
137
+ merged_df = pd .concat (dfs , ignore_index = True )
138
+
139
+ # Drop duplicate rows
140
+ merged_df = merged_df .drop_duplicates ()
141
+
142
+ # Save the merged dataframe to a new Excel file
143
+ merged_df .to_excel (output_file , index = False , engine = 'openpyxl' )
152
144
153
145
if __name__ == "__main__" :
154
146
155
147
# find_spe_files() # Multiple .spe files
156
- find_spe_file () # Singluar .spe file
157
- print ('Done' )
158
- # merge_xlsx()
159
- # print('Done Done')
148
+ # find_spe_file() # Singluar .spe file
149
+ # print('Done')
150
+ merge_xlsx ()
151
+ print ('Done Done' )
0 commit comments