Convert CSV to XLS Online

Import a text table into the legacy Excel 97–2003 workbook format without missing its hard limits.

  1. Add a file Choose or drop it here
  2. Pick the format Change it whenever needed
  3. Download the result After conversion completes

CSV-to-XLS Joins a Text Exchange Format to an Older Excel Binary Workbook

CSV is plain table text. RFC 4180 describes a common form with comma-separated fields, optional headers, and CRLF records; it registers text/csv. It does not store a cell type, formula, workbook layout, or sheet list. XLS is not a text file. Microsoft identifies the Excel 97–Excel 2003 .xls format as BIFF8, a binary workbook format used by Excel 97, 2000, 2002, and 2003.

Turning CSV into XLS therefore makes a new legacy workbook from imported characters. It can make the table convenient to open in older Excel-oriented workflows, but it cannot recover a former workbook’s formulas, styling, charts, validation, or multiple sheets from a CSV source. It also puts the data inside the older Excel grid, whose limits can decide whether XLS is even a safe target. Verify size before conversion, rather than learning about a limit after the file has been handed off.


Import Must Parse the Text Before the BIFF8 Workbook Can Be Written

A valid CSV record is not merely every comma-separated physical line. RFC 4180 says a field containing a comma, quotation mark, CR, or LF should be enclosed by double quotes. A quotation mark inside the value is written as two quotation marks. This permits a free-text cell to contain a comma or an embedded line break while remaining a single field. A converter must honor quote state; otherwise columns shift before the first XLS cell is created.

The importer also chooses character encoding and cell types. A digit sequence such as 0000018 may be an ID, not a number. A 16-digit identifier can lose precision when treated as a number. 03/04/05 may be text or a date in different regional orders. Use an import route that allows text columns to be marked before loading. Do not rely on a later cell format to restore characters that automatic conversion already changed.


The Main Benefit of XLS Also Comes With Legacy Trade-Offs

  • Legacy workbook delivery: XLS is the BIFF8 format associated with Excel 97 through 2003, which can matter for an old required receiver.
  • Editable cells: imported data can be sorted, formatted, and given formulas after the conversion.
  • Hard sheet ceiling: each XLS worksheet is limited to 65,536 rows and 256 columns, according to Microsoft.
  • Lost CSV ambiguity remains a risk: importing assigns types, but an incorrect guess can alter identifiers or dates.
  • No recovered workbook features: CSV did not contain formulas, charts, styles, objects, or other sheets to preserve.
  • Modern-feature mismatch: current Excel opens old workbooks in Compatibility Mode and warns about unsupported features.

Microsoft Documents Exactly Where the XLS Boundary Lies

Microsoft says the XLS format has a maximum of 65,536 rows in each sheet. Its worksheet compatibility guidance adds the matching 256-column limit and says cells beyond 65,536 rows by 256 columns are not saved in the Excel 97–2003 format; references to data in that region return #REF!. This is not simply a slow-performance warning. It is a data-loss boundary. A source CSV with 70,000 records needs another target, a documented split into separate files, or a different process.

For contrast, modern Excel worksheets have 1,048,576 rows and 16,384 columns. Microsoft says that when an Excel 2007-or-later workbook is saved as XLS, a compatibility check runs. Modern Excel opens XLS in Compatibility Mode. That allows backward use but does not make the old format equal to the modern workbook. Select XLS because the receiver truly requires it, not because it sounds like a generic synonym for spreadsheet.


Most Bad XLS Results Started as a CSV Encoding, Separator, or Type Decision

Microsoft says a UTF-8 CSV opens normally in Excel if it has a BOM. Without a BOM, use Data, Get Data, From File, From Text/CSV to select the character set. This matters for names and non-English data: an XLS workbook made from wrongly decoded text has already preserved the wrong characters. A one-column import usually means the program expected a different separator, often semicolon rather than comma in a comma-decimal region. Reimport the original CSV with the real delimiter instead of manually repairing hundreds of shifted cells.

OWASP documents a further problem for data from users: CSV Injection. Spreadsheet software can interpret cells starting with =, +, -, or @ as formulas. OWASP notes that a separator or quote can create a new cell, and warns that Excel may remove certain escaping on save and reopen. Conversion to XLS is not a security filter. If the CSV is an export containing untrusted input, the system that creates the field values must apply the chosen mitigation and the output must be tested in the receiving spreadsheet application.


Concrete Checks for a CSV File Before You Accept an XLS Copy

CheckCSV sourceXLS destination
StructureText fields and recordsBIFF8 binary workbook
Row ceilingNo workbook grid65,536 per sheet
Column ceilingNo workbook grid256 per sheet
Quoted comma / quoteRFC 4180 escaping requiredMust become one cell
UTF-8 direct openingBOM helps Excel identify itText must be correct before save
Formula and layoutNot storedCan be newly added, not restored

CSV-to-XLS Questions That Prevent the Usual Legacy-Format Surprise

Can XLS hold more than 65,536 CSV rows?
No, not on one sheet. Microsoft says data outside the XLS row and 256-column limits is not saved.

Why did the conversion make one XLS column?
The CSV delimiter was read incorrectly. Import the original with the right comma, semicolon, tab, or other separator.

Will XLS restore formulas from CSV values?
No. CSV never held active formulas. Any formula in the XLS must be created after import.

Why did a code lose zeroes in the XLS file?
The importer guessed it was numeric. Set that column to Text at import before it is written as a workbook value.

When should I choose XLS instead of XLSX?
Choose XLS only when a receiver needs the Excel 97–2003 BIFF8 format and the data fits its old grid. Otherwise a modern workbook format avoids the legacy limits.

Check the row count before writing XLS and again after opening it. The 65,536-row limit applies to each sheet, and the 256-column limit matters too. A CSV has no grid until parsing, so one bad quote can create more apparent fields than expected. Validate the parsed field count first. If a split is required, label every part, repeat the header, preserve ordering, and state that the original table was divided. Do not assume an old application will explain omitted data or make a safe split automatically.

Use a controlled import for text that must never change. Microsoft distinguishes direct opening of UTF-8 CSV with a BOM from the Data, Get Data, From Text/CSV route for a file without one. In the controlled route, set the code page and set IDs, telephone-like strings, long references, and ambiguous dates to Text before loading. An apostrophe or number format added after the import may change display but cannot reliably restore an earlier automatic conversion. Open the final XLS in the oldest real recipient when possible, not only in modern Excel's Compatibility Mode.

Keep the raw CSV until delivery is accepted. It is the direct record of delimiters, quote escaping, line endings, and characters, and it helps show whether a problem began in source data or in the XLS importer. Log the encoding, delimiter, parsed row count, column count, XLS limit check, and the program used for final review. Those precise facts make a later legacy-format failure diagnosable. If the receiver needs only a flat table, a tested CSV may be safer than adding a BIFF8 wrapper solely out of habit.

The same warning applies to formatting after conversion. A number format can make a cell look like a code or a date, but it cannot guarantee that the original characters survived the import. Establish text columns first, then use visual formatting for the receiver. This distinction is vital for legacy XLS because an apparently neat workbook may conceal a rounded identifier or a date converted under the wrong regional rule. Review source and result side by side before sending the legacy file.

If the source is close to the XLS ceiling, do not leave the check until the final save. Count all parsed records and fields before creating the workbook, then compare the result after reopening it. A compatibility warning is useful, but an explicit preflight count gives a clear decision before a recipient depends on the file. It is safer to choose a modern target early than to discover later that a legacy workbook cannot contain the complete table.