We've built an excel spreadsheet importer for our ERP system, which parses company data from the uploaded XLS files. This tool should help the user enter long lists of companies and is a more efficient alternative to entering each company individually (interface and logic involved in individual addition of the companies is more complex).

Before uploading the data to the database user has last chance to double-check and modify/delete the data, because some of these fields are pretty sensitive and must be recognized correctly by the parser.

Typically one import operation may contain tens of companies, and each company has near to 30 fields such as general information, contact information, etc.

The interface should provide clear way for:

  1. Field editing.
  2. Company deletion.
  3. Company addition.
  4. Selection of multiple rows.

Solution 1:

One idea was to present uploaded fields in a spreadsheet-like interface: Interface 1

In this case user would have to double click each field to edit it, and single click would select it. Right click brings the context menu.


  • May be efficient for an experienced user


  • Lots of data in the viewport
  • Double clicks are needed for editing the fields

Solution 2:


Interface 2


  • User-friendly (?)
  • Allows user to concentrate on single company at a time


  • More slow
  • No multiselect


  1. Should efficiency come before user-friendliness, considering that user had enough experience to fill out and import the spreadsheet?
  • how often does a parsing mistake happen?
    – Jeremy T
    Sep 25 '13 at 21:16
  • Solution 1 could be used with single click edit too (like in spreadsheats). And you can add non editable columns for delete or select.
    – ColdCat
    Sep 26 '13 at 8:32

You could change the process workflow, as pictured:
enter image description here

The points are:

  • Use Excel as working environment. Use its rich functionality for editing and some error detection. Don't invent your own online Excel.
  • Let the parser detect errors and return only records which contain errors for correction.

User testing should come first. You may not even need the actual users at first, just 10 or so examples of XLS files they might be uploading.

You say there may be about 30 data fields per company — how would it look like within the framework of solution 1? You would probably have a lot of horizontal scrolling, and the users may have difficulty following the line of each company. If so then solution 2 may be preferable (or not).

What kind of parsing errors do you anticipate? That's actually an important question. In my experience working with CSV parsers, they don't just randomly replace "105 Main str" with "106 Unimportant str" or anything like that. No, they usually screw up royally — for example, miss a field and then cause every other piece of information to appear in a wrong column. Or find a stray quotation mark and gobble up the rest of the data into a single blob. Or worse. If your users will have to recover from situations like this, then neither solution 1 nor 2 seem appropriate...

In the end, user testing should come last as well.


Solution 1 is highly recommended by me because,

the data is

  • displayed similar to the original spreadsheet
  • able to see all the data in 1 glance
  • mass editing is possible (multiple cell editing)

Solution 2 is not user friendly in my opinion.

May I suggest to add keyboard shortcuts to your solution 1. Advanced user will prefer keyboard shortcuts over mouse and it will be faster. (keep it similar to MS Excel)

e.g. F2 for editing of cell, directional-arrow for selecting cells... etc


Solution (2) is called multi-page form, and is a known pattern for fixing very long forms.

You can look at this article http://www.nngroup.com/articles/forms-vs-applications/ which contrasts single-page vs multi-page forms.

Obviously the spreadsheet is faster, but, is it suitable for everyone? Ask yourself: who are your users? If all of them are able to work with a spreadsheet, then go with the spreadsheet. If some of them can't (even if the population of those is much smaller), then you shouldn't choose the spreadsheet. Because making the life of some users easier should not come at the expense of disabling other users.

One solution could be to have two modes, with the spreadsheet under the "advanced" mode. Or, you could provide an "Import from Excel or .CSV" option?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.