Convert Excel (XLS, XLSX, XLSM, XLSB) to a Fixed Width Text File

If you have trouble running these examples see Using the Command Line and Helpful Hints For Creating a Command Line.

NOTE: Example batch files (XLStoTXT.bat and XLSXtoTXT.bat) have been installed for quick and easy testing. Find it at Start\All Programs\Convert XLS\Example Batch Files. These will work without modification provided you installed in the default folder. Email us at support@softinterface.com if you have any questions or need additional examples. We will get you up and running fast!

The first example shows how to convert from an Excel file(s) to a fixed width text file. In this example each column width can be specified since it uses the 'Convert XLS' conversion method (/M2). We also show how you can specify a range of cells to convert.

The second example shows how to convert from an Excel file to a fixed width text file using a column auto-sizing feature. This too requires the use of the 'Convert XLS' conversion method (/M2).

The last example shows how to use the 'MS Excel' conversion method (/M1) to convert from Excel to a fixed width text file.

All the examples below create an 8 bit text file. To create Unicode text files, swap out /C21 with /C42 in the examples. Furthermore, you can easily change the examples below to handle XLSX or XLSM files by changing all instances of "XLS" to "XLSX" or "XLSM" and changing all instances of "/F-4143" to "/F51" or "/F52" respectively. For XLSB files use the /M2 switch instead of /M1.

Each switch shown in blue is described in detail below the examples given. It is highly recommended you review each switches description before implementing the example, thereby giving you the full power of 'Convert XLS'.

Example 1: XLS File to a Fixed Width Text File

First specify your fixed width text file format using the Using the Fixed Width Text Profile Editor. You give a profile a name, in this case lets call it Profile142. To convert a sheet named "Apples" in a single Excel file, "C:\in\input.XLS" to a fixed width text file and applying the fixed width profile Profile142 the following syntax would be used:

 

ConvertXLS.EXE /S"C:\in\input.XLS" /T "C:\out\out.txt" /C21 /F-4143 /M2 /N"Apples^^^2^Profile142" /V

Next we show how to convert a whole folder (and sub-folders /R) of XLS files (C:\in\*.XLS) to fixed width text files located in the same folder. We'll also show how to specify how to convert the 7th worksheet (/N) in each workbook. The following syntax would be used for such a case:

 

ConvertXLS.EXE /S"C:\in\*.XLS" /T "C:\in\*.txt" /C21 /F-4143 /M2 /N"7^^^2^Profile142" /R /V

 

The /G switch can be used to tell 'Convert XLS' to place each output file in the same folder as each input file. Therefore the command line above is equivalent to the command line below:

 

ConvertXLS.EXE /S"C:\in\*.XLS" /G /C21 /F-4143 /M2 /N"7^^^2^Profile142" /R /V

 

You may simply want to convert a whole folder and its sub-folders and place the output into a separate folder/drive. In which case use this syntax:

 

ConvertXLS.EXE /S"C:\in\*.XLS" /T "C:\Out\*.txt" /C21 /F-4143 /M2 /N"7^^^2^Profile142" /R /V

 

Building on the last example, say you want to specify a range, say A1:B10 within a sheet to convert. No problem, modify the /N switch as shown below:

 

ConvertXLS.EXE /S"C:\in\*.XLS" /T "C:\Out\*.txt" /C21 /F-4143 /M2 /N"7^A1:B10^^2^Profile142" /R /V

 

Specifying ranges can be very powerful. For example if you want to only extract column N you can use "N:N" for the range.

 

Example 2: XLS File to a Fixed Width Text File (Autosize Columns)

This is identical to the first example of Example 1, however this time we don't specify each column width, rather, we allow 'Convert XLS' to automatically size the columns to fit all the data. Notice the only change is in the /N switch.

 

ConvertXLS.EXE /S"C:\in\input.XLS" /T "C:\out\out.txt" /C21 /F-4143 /M2 /N"Apples^^^0" /V

 

Of course the example immediately above can be adapted to do whole folders and sub-folders similar to what we did in Example 1.

Example 3: XLS File to a Fixed Width Text File (Using 'MS Excel' Conversion Method)

In this case we use the 'MS Excel' conversion method (/M1) to convert from a XLS file to a Fixed Width Text file. Notice that when using the 'MS Excel' conversion method we can't specify each column width and this will be a slower conversion.

 

ConvertXLS.EXE /S"C:\in\input.XLS" /T "C:\out\out.txt" /C21 /F-4143 /M1 /N"Apples^^" /V

 

Sheet: Use "*" or "" for all sheets. You can use names of sheets, or the numeric index. If using numeric indices, you can specify ranges of sheets (i.e. "1,4,10-20" and "4-10,9" etc.).

Range: Not used in these examples. You could optionally specify a range; say if you only wanted to convert a portion of the input XLS file. Use the same syntax as an Excel range (e.g. A1:B10, B:B).

DelimChar: is for specifying the ASCII value of the delimitation character used in a CSV file. 44 for comma, 124 for Bar "|", 9 for the tab etc.

FixedWidth: 'Convert XLS' Conversion Method only (/M2). Here you can specify how to import/export a fixed width text file. The following numeric values are valid:

0 = Auto size column widths to fit all data (Default)

1 = Use same widths as specified in the Excel file

2 = Use widths specified by the Profile. Widths can be specified in the user interfaces Fixed Width Text Profile Editor.

Profile = If you are specifying a fixed width text profile to use do it with this parameter. Use the Fixed Width Text Profile Editor to generate a profile. The full path to the txt file could be used. As an example if you want to specify to convert sheets called 'Apples' and 'Oranges', and use the range "A2:B20" and a fixed width text file profile named MyFixedWidth you would do so like this:

/N"Apples,Oranges^A2:B20^^2^MyFixedWidth"

Note: It is highly encouraged that you use the Verbose (/V) switch initially to see what the status of your conversion is and to help you perfect your command line. When in verbose mode the program will tell you what went wrong or right with your command line using message boxes.