The Most Used Feature, and the One That Breaks Most Often
However well a business system is built, Excel import and export never go away. Data sent by a partner, records migrated from a legacy system, a price list where hundreds of rows need to change at once: a spreadsheet is simply faster than a form for all of these.
The trouble is that this feature is usually built as a button attached to a screen. A file with 50,000 rows and 20 columns holds one million cells. Load all of it into memory inside a single request and save it row by row, and you will either exceed the 30–60 second web request limit or exhaust the server's memory. The typical incidents follow:
Import Design: Separate Validation from Commit
The core idea is to split validation and commit into two stages. Receive the file, check all of it, show the user the result, and only then write.
Template and Formatting Traps
Returning Errors
A single message saying "error in row 37" is not enough. Return an annotated error file: the original file with an added column stating the reason for each failed row. The user fixes that file and uploads it again.
Whether to reject the whole file or commit only the valid rows depends on the data. Where rows only make sense together, such as journal entries or a BOM, choose all or nothing. Where rows are independent, such as customer or item master data, committing valid rows works well. Either way, state the rule on the screen before the upload.
Performance Design for Large Volumes
Export Design: What Happens When You Export the List Screen As-Is
The list screen shows 20 rows at a time, but the export button reads all 300,000 rows that match the filter. Run that query on the production database and order entry slows down in the middle of the working day.
Security and Control
The POLYGLOTSOFT Approach
When every screen implements its own Excel feature, validation rules, error messages, and performance problems multiply with the number of screens. POLYGLOTSOFT builds template validation, annotated error files, the job queue, progress tracking, and export history as a shared import/export module, so each screen only adds its column definitions and validation rules.
Slow Excel features in systems already in production can be improved as well. Moving a timing-out upload to asynchronous processing, adding annotated error files, and isolating large exports are all tasks that fit within subscription development, prioritized and delivered in stages. If an Excel upload has ever frozen your system, contact POLYGLOTSOFT.
