diff --git a/ILExtract.py b/ILExtract.py index f6d0186..b3cfa64 100644 --- a/ILExtract.py +++ b/ILExtract.py @@ -65,15 +65,16 @@ class ILReport: print(f"{self.output_name} failed to process:\n{e}") self.successful = False return 1 - # try: - # # Save the dataframe as an excel document - # dataframe.to_excel(f"{self.output_location}/{self.output_name}_{dt.now().strftime('%Y%m%d-%H%M')}.xlsx", index = False) - # except Exception as e: - # self.successful = False - # print(f"{self.output_name} failed to save to excel!\n{dataframe}\n{e}") - # return 1 - # self.successful = True - return 0 + try: + # Save the dataframe as an excel document + dataframe.to_excel(self.output_location, index = False, engine="openpyxl") + except Exception as e: + self.successful = False + print(f"{self.output_location} failed to save to excel!\n{dataframe}\n{e}") + return 1 + self.successful = True + return dataframe + def process(self): try: # Open the file and read it to a string | errors = 'replace' deals with non UTF-8 characters (no affect on output) @@ -83,19 +84,19 @@ class ILReport: print(f"Failed to open file: {self.location}\n{ioe}") self.successful = False return 1 - try: + #try: # Run the associated method to extract the data and get the dataframe - dataframe = self.x_method(report, self.output_name) - try: - assert(len(dataframe) > 1) - except Exception as e: - print(f"Data Length Error: {self.output_name} is empty:\n{dataframe}") - self.successful = False - return 1 + dataframe = self.x_method(report, self.output_location) + try: + assert(len(dataframe) > 1) except Exception as e: - print(f"{self.output_name} failed to process:\n{e}") + print(f"Data Length Error: {self.output_name} is empty:\n{dataframe}") self.successful = False return 1 + #except Exception as e: + # print(f"{self.output_name} failed to process:\n{e}") + # self.successful = False + # return 1 return dataframe @@ -178,7 +179,7 @@ def ach(report: str, save_name: str): if (re.search(contract_number_regex, line[1]) != None) & (re.search(bank_number_regex, line[1]) != None): [extracted_data_dict[columns[c]].append(data_extractor(c, line[1])) for c in range(0, len(columns))] dataframe = pd.DataFrame(extracted_data_dict) - dataframe.to_excel(save_name, index=False, engine="xlsxwrtier") + dataframe.to_excel(save_name, index=False) return dataframe def disposition(report: str, save_name: str): @@ -203,7 +204,7 @@ def disposition(report: str, save_name: str): [extracted_data_dict[columns[c]].append(data_extractor(c,line[1])) for c in range(0, len(columns)-1)] extracted_data_dict["Customer Name"].append(lines[line[0]+1].strip()) dataframe = pd.DataFrame(extracted_data_dict) - dataframe.to_excel(save_name, index=False, engine="xlsxwrtier") + dataframe.to_excel(save_name, index=False) return dataframe @@ -289,7 +290,7 @@ def gainloss(report: str, save_name: str): disp_descriptoin.append(" ".join(disp_split[1:])) df["DISPOSITION CODE"] = disp_code df["DISPOSITION DESC"] = disp_descriptoin - df.to_excel(save_name, index=False, engine="xlsxwrtier") + df.to_excel(save_name, index=False) return df # Works for Net-inv-loans & NIV-after @@ -338,7 +339,7 @@ def net_invest_trial_balance(report: str, save_name: str): [extracted_data_dict[c[0]].append(data_extractor(c[1], data_section[2])) for c in line2] [extracted_data_dict[c[0]].append(data_extractor(c[1], data_section[3])) for c in line3] dataframe = pd.DataFrame(extracted_data_dict) - dataframe.to_excel(save_name, index=False, engine="xlsxwrtier") + dataframe.to_excel(save_name, index=False) return dataframe @@ -394,7 +395,7 @@ def lockbox(report: str, save_name: str): # Once it hits, add the name to the dict extracted_data_dict["CustomerName"].append(data_extractor(7,lines[line[0]+i])) dataframe = pd.DataFrame(extracted_data_dict) - dataframe.to_excel(save_name, index=False, engine="xlsxwrtier") + dataframe.to_excel(save_name, index=False) return dataframe @@ -418,7 +419,7 @@ def minv(report: str, save_name: str): [extracted_data_dict[columns[c]].append(data_extractor(c,line[1],debug=False)) for c in range(0,len(columns))] #All the list lengths need to be the same so if anything was missed it will fail to build dataframe = pd.DataFrame(extracted_data_dict) - dataframe.to_excel(save_name, index=False, engine="xlsxwrtier") + dataframe.to_excel(save_name, index=False) return dataframe # Good for PUB_WIRES, VMCC, PBP_EPAY, returned check @@ -457,7 +458,7 @@ def payment_transactions(report: str, save_name: str): inv_no = lines[line[0]+1][79:90].strip() extracted_data_dict['INV NO'].append(inv_no) dataframe = pd.DataFrame(extracted_data_dict) - dataframe.to_excel(save_name, index=False, engine="xlsxwrtier") + dataframe.to_excel(save_name, index=False) return dataframe @@ -498,7 +499,7 @@ def renewal_net_invest_trial_balance(report: str, save_name: str): [extracted_data_dict[c[0]].append(data_extractor(c[1], data_section[1])) for c in line1] [extracted_data_dict[c[0]].append(data_extractor(c[1], data_section[2])) for c in line2] dataframe = pd.DataFrame(extracted_data_dict) - dataframe.to_excel(save_name, index=False, engine="xlsxwrtier") + dataframe.to_excel(save_name, index=False) return dataframe @@ -536,5 +537,5 @@ def unapplied(report: str, save_name: str): [extracted_data_dict[columns[c]].append(data_extractor(c,line[1])) for c in range(0,9)] [extracted_data_dict[columns[8+c]].append(data_extractor(c,lines[line[0]+1])) for c in range(1,len(columns)-8)] dataframe = pd.DataFrame(extracted_data_dict) - dataframe.to_excel(save_name, index=False, engine="xlsxwrtier") + dataframe.to_excel(save_name, index=False) return dataframe \ No newline at end of file diff --git a/main.py b/main.py index 8cfd2b5..a0577f2 100644 --- a/main.py +++ b/main.py @@ -31,7 +31,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): print(f"Input File: {inFile}") with open(inFile[0], errors="replace") as inF: txt = inF.read() - print(txt) + #print(txt) self.inputFilePreview.setText(txt) self.inputFile = inFile[0] inFileEnd = inFile[0].split('/')[-1] @@ -61,6 +61,7 @@ Make sure you select the correct report type before processing!") self.processReportButton.setEnabled(True) def process_selection(self): + self.inputFilePreview.setText("Processing file...") with open(self.inputFile, errors="replace") as inF: reportString = inF.read() try: @@ -88,17 +89,19 @@ Make sure you select the correct report type before processing!") extract_function = ilx.payment_transactions elif self.reportTypeCB.currentText() == "Wires": extract_function = ilx.payment_transactions - elif self.reportTypeCB.currentText() == "Returns": + elif self.reportTypeCB.currentText() == "Returned Check": extract_function = ilx.payment_transactions - + dataframe = ilx.ILReport( location= self.inputFile, extraction_function=extract_function, output_location=self.outputFile, ).process() - dataframe.to_excel(self.outputFile, index=False, engine="xlsxwriter") + + #dataframe.to_excel("test_name.xlsx", index=False, engine="xlsxwriter") smallDF = dataframe.iloc[0:500,:] - self.inputFilePreview.setText(smallDF.to_html(index=False)) + self.inputFilePreview.setText(smallDF.to_html(index=False)) + print("Fin") self.openReportButton.setEnabled(True) except: error = QtWidgets.QMessageBox()