DBF to CSV

Open a dBase, FoxPro or Clipper table as a CSV file, right here on your device.

Conversion desk

On this device

Start with a file

Drop your file here or choose one from your device.

DBF · 5 files at a time, free

Its new format

FromDBF

ToCSV

Converted on this device. Nothing is uploaded.

Your file's short trip

DBF to CSV

Your file is next.

  1. Copy records
  2. Ready

Why turn a DBF into CSV

DBF tables tend to outlive the programs that made them. A stock system written in FoxPro, an accounting package from the DOS years, the attribute table of a shapefile: the data is still useful, but the program that opened it may be long gone. CSV is the plainest way to carry that data forward. Databases, scripts and spreadsheets all read it, and because it's just text, it will still open years from now.

Typical jobs: moving customer or product records into a new system that imports CSV, loading a map layer's attributes into a database, or simply looking inside a table that nothing on your computer opens anymore.

How to convert a DBF file to CSV

  1. Above the drop area, check the two settings: Delimiter (Comma to start with) and Text encoding (From the file). A setting applies to the files you add after choosing it.
  2. Drop your .dbf onto the page, or press Choose file. If the table has memo fields, select its .dbt or .fpt file in the same go; it's matched to the table by name.
  3. Each file gets its own row. When it's done, open What changed under the file name to see which encoding was used and anything that was left out.
  4. Press Download. With several files, Download all (.zip) saves them together. The free plan converts up to 5 files at a time.

What's preserved, what changes

Measured on our 30 licensed test files.
WhatResult
Records and valuesPreserved 1,471 records read from 29 of our 30 test files.
dBase, FoxPro and Visual FoxPro filesPreserved Version bytes in our test files: 0x02, 0x03, 0x30, 0x31, 0x32, 0x83, 0x8B, 0x8C and 0xF5.
Field typesPreserved Read in our test files: auto-increment (+), double (B), text (C), date (D), float (F), integer (I), logical (L), memo (M), number (N), date-time (T), varchar (V) and currency (Y).
Declared decimalsPreserved Written as the field declares them, so 3 in a two-decimal field is 3.00 (47 such fields in our test files).
Dates and date-timesPreserved Written as 2024-01-31, or 2024-01-31 14:30:00 with a time, early dates included (1,288 values in our test files).
Memo text (.dbt and .fpt)Preserved Read when you add the memo file along with the .dbf: 596 memo values in 6 test files.
Text encodingsPreserved Taken from the file's language driver byte, or chosen by you. In our test files: GBK, UTF-8, Windows-1251, Windows-1252 and Windows-874.
Records marked as deletedNot converted Left out, as dBase does when it packs a table (4 in our test files).
OLE and picture fieldsNot converted Left out, and named in the notes (1 in our test files).

Preserved: arrives as it is. Approximated: arrives in a simpler form, as the row describes. Not converted: stays behind.

Almost everything in a DBF comes through untouched. What we leave out, we leave out on purpose: records deleted in the original program, which dBase keeps in the file until the table is packed, and OLE or picture fields, which a text file can't carry. Our test set also includes a table that was damaged on purpose. It's turned down with a clear message rather than converted into something half right.

Choosing the settings

Delimiter

Comma is the standard choice, and what most databases and scripts expect. Choose Semicolon if the file is headed for a spreadsheet set up for a decimal comma, as in much of Europe; there, a comma-separated file can open with everything in one column. Tab suits tables whose text is full of commas.

Whichever you pick, numbers keep a decimal point, as in 1250.50. If your spreadsheet expects 1250,50, the workbook route, DBF to Excel, sidesteps the question, because numbers arrive as numbers.

If the CSV may go back into a DBF later, CSV to DBF works out a semicolon file's decimal mark from its numbers. The one case it can't settle is a file whose only numbers with a point look like 1.250. It reads those as 1250 and says so in the notes, which is why the comma is the safest choice for a round trip.

Text encoding

Older tables store each letter as a single byte, and the same byte means a different letter in each code page. With From the file, we read the table's language driver byte, which names its code page. We recognise 55 of them, Chinese, Japanese, Korean and Thai included. If the byte is empty or unknown, we check whether the text is valid UTF-8, and otherwise assume Western (Windows-1252). The notes always say which of these happened.

When letters still look wrong, the pattern usually points to the right choice:

Change the setting, then add the file again. The new row uses the new encoding, so you can compare the two.

What the CSV looks like

The file is UTF-8 with a byte order mark, so Excel recognises accented letters, and each record ends with CR LF. A value is quoted only when it needs to be: when it contains the delimiter, a quote or a line break, as multi-line memo text often does.

If something goes wrong

Try it with a sample file

No DBF at hand? Download sample-world-countries.dbf (519 KB), the attribute table of Natural Earth's world map: one row per country, with names in Arabic, Chinese, Greek, Hindi and many other languages. Drop it above. Its header doesn't name an encoding, so the notes will say UTF-8 was detected, and every name comes through intact.

Public domain. Source and details: sample file notes.

Plans

Free and Pro

The free plan is the real product, not a trial. Pro is for people who convert in bulk, and it isn't open yet.

FeatureFreePro
Single filesFree, no watermark, no waitSame
Files at a timeUp to 5Up to 100
ZIP and folder inputPick the files insteadYes
Large filesWorks; may be slow on some devicesBuilt for them
AccountNone neededOptional
Where files goNowhere: converted on your deviceNowhere: converted on your device
Price$0Week Pass $6 · Pro $7/month or $48/year · coming soon

Privacy

Check it yourself

You don't have to take our word for it. Your browser can show you exactly what this page sends.

  1. Open your browser's developer tools (F12, or Option + Command + I on a Mac) and choose the Network tab.
  2. Convert a file on this page.
  3. Look through the requests. None of them carries your file: the page loads its code once, then the conversion runs in a Web Worker on your device.
  4. For a stronger test, turn off Wi-Fi after the page loads, then convert again. It still works.

The conversion worker runs under its own Content Security Policy, which blocks every network request:

default-src 'none'; script-src 'self'

The page itself may only talk to this site and our cookieless analytics:

connect-src 'self' https://gateway.umami.is