Excel writes UTF-8 CSV files with a byte order mark (BOM) at the start by default on Windows. The BOM is three bytes (EF BB BF) that signal UTF-8 encoding but are not part of the actual data. Naive parsers that read the first character as part of the first header end up with a garbled first column key like Name instead of Name. FixTools detects and strips the BOM silently before parsing so the first header reads cleanly. This is a tiny issue that breaks downstream consumers in surprising ways, and handling it automatically eliminates a common source of frustration.
Excel in non-US locales exports with locale-specific delimiters. German, French, Spanish, and Italian installations use comma as the decimal separator inside numbers, which means CSV field separators must be semicolons to avoid ambiguity. A file exported from German Excel might look like Name;Alter;Gehalt with semicolons as delimiters and decimal numbers written as 1.234,56. The auto-detector picks up the semicolon delimiter, but the decimal format remains as text because JSON has no locale awareness. For numeric output, convert decimal commas to periods in the spreadsheet before exporting.
Excel quoting follows RFC 4180 closely. Fields containing commas, line breaks, or double quotes are wrapped in double quotes, and embedded double quotes are escaped by doubling. FixTools implements the same rules so Excel files round-trip cleanly. One Excel-specific quirk: very long cells with line breaks are sometimes wrapped in three layers of quotes due to copy-paste artifacts; the parser handles these cases by recognising the outer quote pair correctly.
Excel auto-formats some values during export in ways that surprise downstream consumers. Long numeric strings that look like phone numbers or IDs may be converted to scientific notation. Dates may be reformatted from text into Excel date serial numbers. Leading zeros on postcodes may be stripped. None of these is fixable at the conversion step because the original information is already gone in the exported file. The fix is to set affected cells as Text format in Excel before exporting, or to wrap them in quotes manually in the cell content.