I am working on the UX for an application that takes in an excel file and displays results of its processing to the user.

In this application, to begin file processing, it needs to know where the header row is located. So the user is asked to define a header row, I have lobbied to make it as automated as possible to make it a good experience, and only ask for the user to define it if this processing is wrong.

One of the main problems for displaying it to the user, as you can imagine, is these files could be tens of thousands of lines long, or only a few lines. Then to complicate matters a little more, the header is not always at the top of the file either, because there's no standard way of putting the file together, and our users would not respond well to standardization. So potentially the header row could be (at most, from our experience) 10 rows down, or possibly 20 rows down in a really weird case.

So how would I display the contents of a user file, for header selection, and afford the use case where it may not be in the first 12 lines shown? I have a partial solution, but I'm not happy with it (see attached). In this solution the user would simply click a row. So if you're able to give visual examples that would be great, if not, any standards, conventions, resources and things of that sort would be helpful too.

Potential first thought solution

2 Answers 2


I would consider asking the user for this information in a nonvisual manner upfront. Spreadsheets are amenable to specification by row location(s). Simply ask the user for the location of the header rows in a text field. Lookup and display these specified header fields so the user can visually confirm that the headers have been correctly chosen.

  • The only issue with a text field solution is then you have to build in error tolerance, which I am trying to eliminate by simplifying. It's possible, i suppose, to do a predictive solution. However, by displaying the contents of the file and allowing the user to select a header offers the user validation that we, in fact, read their file into the system. As well as prevents too many (possibly) faulty assumptions in the software on our end. There's also the idea that a click would take less effort than typing, or copy/pasting the header name.
    – mrClean
    Sep 30, 2016 at 20:17
  • @mrclean208 I suggest using the text input as a first step to eliminate the uncertainty around narrowing down where the header rows lie. No point in automating this, if as you outlined, the location cannot be reliably predetermined. Afterwards, you can switch to a graphical selection to make the input easier for users. Sep 30, 2016 at 20:39
  • 1
    I think this could work. Since, if it was reliable at detecting the headers, a dropdown would make the most sense. However, since this is not entirely feasible, a text box asking for the location makes the most sense. Thanks!
    – mrClean
    Oct 3, 2016 at 14:10

The correct solution would be to fix the data generation phase itself to produce the header row as the first row.

It is curious to see, how this data is being generated in such a way, that the header row may not appear as the first row (May be the lines are being sorted without consideration to the header row? If that is the case, it can be fixed very easily)

If the automation is able to pickup the header row in majority of cases, would it also be possible for it to pickup top 12 rows (in the descreasing order of probability of them being the header row) and display them (in that order)? I assume that it doesn't confuse the user if we show the rows out of original order (in which they appeared in the input file).

If all else fails, .. this is a very fancy solution, you could provide the user a search box for each column (above the column) so that he can filter the rows

My answer doesn't seem relevant anymore (with information about the banner).

I assume you are trying to get rid of the banner. You seem to be on right track in using common words to get hold of the banner; and remove it. I think no more than 40 rows would need to be displayed (within which range, the user should be able to pick the header)

  • To answer your question posed of curiosity, the reason why the header is not always at the top, is because some companies may use the first, say, ten rows to put their logo, and some "fancy" information about the document. The automation is only able to use a dictionary of common header words, so it's not entirely reliable.
    – mrClean
    Sep 30, 2016 at 20:13
  • The banner. Of course!
    – blackpen
    Sep 30, 2016 at 20:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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