# Why an extra { when importing .xls?

I am trying to import data from a file. If I import a CSV file, I get:

{{a,b,c},{e,f,g}}.


For example, two curly brackets.

If importing from a .xlsx file I get an extra curly bracket like:

{{{a,b,c},{e,f,g}}}


Why does this happen?

CSV:

Import["file.csv"] imports a CSV file, returning an array.

whereas

XLSX:

Import["file.xlsx"] imports all sheets of an XLSX file, returning the result as a list of arrays.

If the file contains a single sheet, you can eliminate the extra curly braces using the second argument of Import as in @bobthechemist's answer, or simply using Part:

Import["<file.xlsx>"][[1]]

• I need to buy a new keyboard that doesn't have sticky keys; might have beaten you... – bobthechemist Mar 7 '15 at 22:49
• @bob, speaking of sticky keys -- only a few of the keys on my laptop are working due to a coffee spill; and my external keyboard happens to be our cat's favorite spot, and hence full of cat hair:) – kglr Mar 7 '15 at 22:53
• Thanks both. The learning curve is a killer with Marhematica! But makes sense once explained. – David Kerr Mar 8 '15 at 4:19

As mentioned in the comments and the documentation, importing from Excel files allows for multiple sheets. Thus, a single-sheet file will have what you refer to as an "extra" pair of curly braces. To eliminate this behavior, use:

Import["<file.xlsx>",{"Data",1}]


The above command will import just the first datasheet.