def reformat_date(date_str): # Supports YYYY-MM-DD or DD/MM/YYYY for fmt in ('%Y-%m-%d', '%d/%m/%Y', '%m/%d/%Y'): try: dt = datetime.strptime(date_str, fmt) return dt.strftime('%m/%d/%Y') except ValueError: continue raise ValueError(f"Date date_str not recognized")

import csv import re from datetime import datetime from collections import defaultdict def parse_csv_to_transactions(csv_file, mapping): transactions = defaultdict(list) with open(csv_file, 'r', encoding='utf-8') as f: reader = csv.DictReader(f) for row in reader: txn_id = row[mapping['group_key']] txn = 'date': reformat_date(row[mapping['date_col']]), 'memo': row[mapping['memo_col']], 'amount': float(row[mapping['amount_col']]), 'account': row[mapping['account_col']]

"csv_columns": ["Date", "Description", "Amount", "Account"], "iif_targets": "DATE": "Date", "MEMO": "Description", "AMOUNT": "Amount", "ACCNT": "Account" , "transaction_group_key": ["Date", "Reference"]

def generate_iif(transactions, output_file): with open(output_file, 'w', encoding='utf-16') as f: # IIF prefers UTF-16 f.write("!TRNS\tTRNSTYPE\tDATE\tACCNT\tAMOUNT\tMEMO\tNAME\n") f.write("!SPL\tTRNSTYPE\tDATE\tACCNT\tAMOUNT\tMEMO\t\n")

Csv To Iif Converter Exclusive Review

def reformat_date(date_str): # Supports YYYY-MM-DD or DD/MM/YYYY for fmt in ('%Y-%m-%d', '%d/%m/%Y', '%m/%d/%Y'): try: dt = datetime.strptime(date_str, fmt) return dt.strftime('%m/%d/%Y') except ValueError: continue raise ValueError(f"Date date_str not recognized")

import csv import re from datetime import datetime from collections import defaultdict def parse_csv_to_transactions(csv_file, mapping): transactions = defaultdict(list) with open(csv_file, 'r', encoding='utf-8') as f: reader = csv.DictReader(f) for row in reader: txn_id = row[mapping['group_key']] txn = 'date': reformat_date(row[mapping['date_col']]), 'memo': row[mapping['memo_col']], 'amount': float(row[mapping['amount_col']]), 'account': row[mapping['account_col']] csv to iif converter

"csv_columns": ["Date", "Description", "Amount", "Account"], "iif_targets": "DATE": "Date", "MEMO": "Description", "AMOUNT": "Amount", "ACCNT": "Account" , "transaction_group_key": ["Date", "Reference"] '%m/%d/%Y'): try: dt = datetime.strptime(date_str

def generate_iif(transactions, output_file): with open(output_file, 'w', encoding='utf-16') as f: # IIF prefers UTF-16 f.write("!TRNS\tTRNSTYPE\tDATE\tACCNT\tAMOUNT\tMEMO\tNAME\n") f.write("!SPL\tTRNSTYPE\tDATE\tACCNT\tAMOUNT\tMEMO\t\n") "iif_targets": "DATE": "Date"