Improved CSV Import
This spec outlines the features that CSV import should have in the next version.
Usability "Papercuts":
- CSV profile "Load" button shouldn't exist, selecting a profile should auto-load it
- CSV import dialog should close on successful "Import"
- After selecting a csv file, a preview should be automatically triggered
- Perhaps Preview button should disappear, and all changes trigger a preview?
Automatic CSV parsing:
- move file selection to top so it is the first thing you do, and hopefully the rest can be mostly figured out automatically
- auto-detection of encoding: probably straightforward, iterate until one works?
- auto-detection of column separator: do a split of the first line around the common separators and see which gives the most results
- auto-detection of positions: if the separator was detected, split the first line and see if it contains obvious headers like "date"/"amount" (in english and the locale). If so use these by default and auto-skip first line
- if we can detect the positions, automatically detect the date format (year is the one with four digits or values > 31, day is the one w/ values > 12) and amount (split on '.' and ',' and one hopefully always gives 2 values)
- auto-preview on load if there is no error
Improvements:
- add option for specifying when Amount is negative, as some CSVs have the amount always positive and then have another credit/debit column. So something else like a check box "Amount is negative when column [number] contains [textbox]"
- perhaps a two-line scrollable textbox that shows the actual contents, so if someone has exported from somewhere else and doesn't know what it looks like, they don't have to open it separately in an editor to figure it out (if we can't automatically for them).
- allow creation of new account to put the transactions into, instead of only existing account
- specify account by column mapping
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Medium
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Bug #400350: CSV import problem with some banks | Incomplete |
Bug #671771: unhelpful error with problematic csv import date config | Confirmed |
Sprints
Whiteboard
Status Whiteboard doesn't seem like the right place to add this, but I don't know where else..
I have an additional request. Instead of importing a CSV file to one account allow the user to configure a list of matches on fields (as it is for search) to determine to which account (or category) a CSV line goes. This way he doesn't have to categorize his imported CSV file by hand every time he gets an update from the bank.
2009.10.19 mrooney: Thanks for the idea Wim, and this whiteboard is a fine place :) How would you envision the UI for this looking? I guess I imagine a third option for importing at the bottom of the Import frame, you would have "Import into existing account", "Create new account with these transactions", "Import into multiple accounts". Selecting the third would ask you for the column with the account names, and provide a UI for matching them to wxBanker account names. I'm not quite sure what that would look like, though.
2009.10.20 Wim: You're welcome. I think it is clearest if you present a table:
| column | search match | account name |
That the user can fill in. You probably also want to specify a default in case non of the entries match, or perhaps you want to present these to the user for manual selection in some way. You also will want to see the effect of your matches when you create them, so the preview field should get an additional column specifying the account the entry will be imported to.