vw-bank-statement-processor
Process Volkswagen Bank CSV exports into a single merged CSV file. Use when converting VW Bank statements from the source directory into a format that can be uploaded to Lexoffice.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
VW Bank Statement Processor
Process Volkswagen Bank CSV exports into a single merged file, suitable to be uploaded to Lexoffice.
Source Directory
/Users/manuel/Library/CloudStorage/GoogleDrive-manuel@uplink.tech/Meine Ablage/Firma/Kontoauszüge/Volkswagen Bank/
Input Format
VW Bank CSV exports are UTF-16 encoded with tab delimiters. Each file has this structure:
"Umsätze vom DD.MM.YYYY bis DD.MM.YYYY"
""
"Saldo DD.MM.YYYY: EUR XX.XXX,XX H"
"Saldo DD.MM.YYYY: EUR XX.XXX,XX H"
""
"Nr." "Buchungsdatum" "Verwendungszweck" "Wertstellung" "Soll" "Haben"
"1" "DD.MM.YYYY" "Description" "DD.MM.YYYY" "amount" ""
...
Processing Steps
- Read files from source directory - Do not copy files, read them into memory
- Convert encoding - Convert from UTF-16 to UTF-8
- Remove header lines - Skip the first 5 lines (title, empty, balances, empty) and keep only from the "Nr." header row onwards
- Add column - Add "Auftraggeber/Empfänger" as a new column with value "VW Bank" in each data row
- Merge files - Combine all files, keeping only one header row
- Change delimiter - Convert from tab-separated to semicolon-separated
-
Write output - Save merged file to
~/Downloads/
Output Format
Single merged CSV file with semicolon delimiters:
"Nr.";"Buchungsdatum";"Verwendungszweck";"Wertstellung";"Soll";"Haben";"Auftraggeber/Empfänger"
"1";"31.07.2025";"Description";"30.07.2025";"18,45";"";"VW Bank"
...
Usage
When invoked, ask the user:
- Which months/files to process (e.g., "last 6 months", "2025-07 to 2025-12", "all files")
- Output filename (default:
vw-bank-merged.csv)
Example Command
# Process files in memory and output merged result
for file in 2025-07.csv 2025-08.csv ...; do
iconv -f UTF-16 -t UTF-8 "$SOURCE_DIR/$file" | tail -n +6
done | awk 'NR==1 || !/^"Nr\."/' | sed 's/$/\t"VW Bank"/' | sed 's/\t/;/g' > ~/Downloads/vw-bank-merged.csv
Notes
- Files are named by month:
2025-01.csv,2025-02.csv, etc. - The "Nr." column restarts at 1 for each monthly file
- Soll = Debit, Haben = Credit
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!