How to Convert a Legacy NetSuite XML Export to XLSX

Identify a SpreadsheetML 2003 export named .xls, prove that renaming does not convert it, and verify a new XLSX workbook without losing text identifiers, numbers or dates.

The quick answer

Inspect the file's contents before changing its extension. An existing SpreadsheetML 2003 document named .xls needs format conversion to become XLSX. Renaming it is insufficient. For a trusted file opened in Microsoft Excel, File > Save As > Excel Workbook (.xlsx) is the manual conversion route. This walkthrough uses a separate local converter and verifies the saved workbook with an independent reader.

The 2019 community question concerned a format-and-extension warning on older exports. Oracle's current documentation describes XLSX output for the Export–Microsoft Excel search-export option. Other export paths and existing legacy files can differ. A valid current XLSX export needs no legacy conversion. Apply this lesson only when the existing file's contents actually identify it as SpreadsheetML 2003 XML.

Before you start

Preserve the original file and verify its source. The sample is a representative legacy XML document with fictional data, not a fresh account download. The recording briefly checks the underlying item identifiers in Lists > Accounting > Items, then works with the prepared file.

The local lab’s inspect, copy, convert and validate commands belong to the recorded demonstration. This lab is not a downloadable Excel add-in, and its commands are not standard terminal commands or Microsoft Excel controls. No native Office warning, Save As screen or Excel reopen is simulated.

For your own file, first verify its source and contents. If a compatible Microsoft Excel installation can open that trusted file, use File > Save As, select Excel Workbook (.xlsx), save to a new filename and reopen the copy. Preserve the original and review important data and workbook features afterward: conversion can change unsupported content. The lab sequence below demonstrates the format change and checks; it is not an installation procedure for a public utility.

This converter supports one flat worksheet, one header row and three sample records with consistent typed text, numbers and timezone-free midnight dates. It rejects formulas, links, DTD/entity declarations, merged or hidden cells, sparse indexes, embedded objects, custom styles and multiple worksheets. Binary XLS, macros, charts, pivots and arbitrary workbook repair are outside scope. Use a suitable spreadsheet application or converter when those features matter.

01. Identify the actual format

Run inspect inventory-export.xls in the local lab. It parses the preserved file as well-formed XML with a Workbook root and the SpreadsheetML 2003 namespace urn:schemas-microsoft-com:office:spreadsheet. There are three data records plus one header and five columns.

The contents identify this legacy file. Its .xls filename does not make the XML binary XLS.

The first SKU is 000417 with type String. Quantity 12 and unit cost 8.75 are Number cells; the date is a DateTime value for 2026-10-15 at midnight. These distinctions matter during conversion. A filename alone does not establish the stored format.

02. Check the renamed copy

Run copy inventory-export.xls renamed-only.xlsx. The utility copies the original without altering its contents. The matching SHA-256 values demonstrate byte equality.

The renamed copy has exactly the same bytes. Only its filename changed.

Run validate renamed-only.xlsx. The real local validator fails because the file is not a ZIP archive. XLSX uses an Office Open XML package; a renamed XML document does not acquire that structure.

The visible error is a local package check. It is not a Microsoft Excel dialog, and it does not prove that Office has opened or rejected the file.

03. Convert and validate

Run convert inventory-export.xls inventory-corrected.xlsx. The converter reads the typed XML table and writes a separate XLSX workbook. The original input remains unchanged.

The converter writes a separate workbook and preserves the original input.

Run validate inventory-corrected.xlsx. The check opens the package through an independent read-only reader, resolves its workbook/worksheet relationships and compares the stored cells. It checks the worksheet named “Inventory results,” three data records and five columns. Every cell in this small sample is compared. A ZIP signature alone would be insufficient. The independent read does not certify unsupported formatting, formulas, print settings, accessibility metadata, Excel recalculation or compatibility with every spreadsheet application.

The check compares saved values and types, beyond the ZIP signature.

The comparison checks that 000417 remains text, 12 and 8.75 remain numeric, the third quantity remains numeric zero, and the date has the same meaning. XLSX may store dates as serial numbers with a date format; the original DateTime XML text need not remain byte-identical. This example verifies the 1900 date system and displays dates as yyyy-mm-dd.

The scoped check also finds no worksheet formula elements, macro parts or external-link parts/relationships. Those checks do not make this a general security scanner or an arbitrary-file repair tool.

04. Review the saved cells

Open Preview verified workbook. The local preview reads the produced XLSX bytes through the independent reader, rather than displaying the converter's original data model.

The saved workbook keeps 000417 as text and preserves the numeric zero. Enlarge to inspect dates and the output filename.

Check SKU 000417 in A2, quantity 12 in C2, cost 8.75 in D2 and date 2026-10-15 in E2. The zero in C4 is a real numeric zero. Enlarge the screenshot to see all five columns and the output filename.

A useful conversion check preserves both stored types and intended display. Keep identifiers as text when their leading zeros carry meaning. Confirm important cells in the application that will consume the workbook; this demonstration establishes independent-reader validation, not native Microsoft Excel compatibility.

Common questions

Does renaming .xls to .xlsx convert the file?

No. It changes the name while leaving the bytes unchanged. The demonstration proves this with equal hashes and a failed ZIP check on the renamed XML document. A converter or spreadsheet application's Save As operation must write the new format.

Does the warning prove a file is corrupt or safe?

Neither follows from the warning alone. A mismatch can have several causes. Verify the source before opening, inspect the actual format and investigate unexpected files. Do not disable Excel security settings to make the warning disappear.

Does every current NetSuite export need this fix?

No. Current Oracle documentation describes XLSX for the Export–Microsoft Excel search-export option, rather than every export path. This lesson concerns an existing legacy SpreadsheetML 2003 document named .xls; a valid XLSX export needs no such conversion.

Why check leading zeros and cell types?

The identifier 000417 is different from the number 417. A converter can preserve visible values while changing their types, or alter an identifier by treating it as numeric. Check text identifiers, numeric values, zero values and dates separately.

Can I use CSV instead?

CSV is another search-export option, but it does not carry workbook formatting or stored cell types. When opening or importing CSV in a spreadsheet application, explicitly set identifier columns such as SKU to Text and select the intended date interpretation. A direct open can strip leading zeros, change long identifiers or reinterpret dates using locale defaults.

Supporting sources