Excel tries to help by guessing types

A DBF schema distinguishes character, numeric, date, logical and memo fields. CSV does not. When a CSV is opened directly, Excel may remove leading zeros, convert long identifiers to scientific notation, interpret day and month in the wrong order, or round numbers beyond its precision. The CSV can be correct while the spreadsheet view is already altered.

Classify columns before export

DBF contentTarget handlingExample risk
Account, postal or product codeText00125 becoming 125
Identifier longer than 15 digitsTextLast digits rounded or replaced
DateExplicit date format03/04 interpreted by the wrong locale
Decimal amountNumeric with documented decimal separatorComma confused with CSV delimiter
Memo textQuoted UTF-8 textLine breaks splitting a naïve import

Correct the source code page before exporting. Select UTF-8, an appropriate delimiter and ISO-style dates where possible. Keep field names stable and store the mapping from abbreviated DBF names to business labels in a separate data dictionary.

Use Excel's explicit text import

  1. Create a new workbook and use the data import command for text/CSV instead of double-clicking the file.
  2. Select UTF-8 and the delimiter chosen during export.
  3. Inspect the preview for shifted columns, embedded line breaks and accents.
  4. Set identifier columns to Text before loading. Do not convert them back to General.
  5. Confirm date interpretation and decimal locale, then load into a new worksheet.
  6. Save as XLSX under a new filename; retain the original UTF-8 CSV as the exchange copy.

Prove that the workbook still represents the DBF

Compare record counts, including a documented decision about deleted DBF records. Check sums for important amount and quantity fields. Compare minimum and maximum dates. Search for identifiers with leading zeros and inspect values at the 15-digit boundary. Sample accented names and multiline memos.

If formulas or cleanup rules are added, keep them in separate columns or a second worksheet. That separation preserves a trace from the source value to the cleaned value. For the export itself, follow the local DBF-to-CSV procedure; for encoding problems, use the code-page diagnosis guide.