Excel to DBF
Turn the first sheet of an Excel workbook into a dBase III table, right here on your device.
Conversion desk
On this device
Start with a file
Drop your file here or choose one from your device.
XLSX · 5 files at a time, free
Its new format
FromExcel
ToDBF
Converted on this device. Nothing is uploaded.
Your file's short trip
XLSX to DBF
Your file is next.
- Read the workbook
- Write records
- Ready
From a spreadsheet to a dBase table
Lists often live in Excel long after the program that needs them was written: a price list for an old till or stock program, member records for a Clipper or FoxPro application, attribute data for a map layer. Those programs read DBF tables, not workbooks. This page turns the first sheet of a workbook into a dBase III table directly, without a detour through CSV.
Skipping the detour helps. Dates, numbers and true/false values come straight from the cells, so nothing depends on how your regional settings would have spelled them out as text.
Converting an Excel workbook to DBF
- Put the sheet you want first in the workbook; only the first sheet is converted. Its first filled row becomes the field names.
- Choose the Text encoding for the DBF, or keep Western (Windows-1252).
- Drop the .xlsx file, or press Choose file. Older .xls files and .ods files need saving as .xlsx first.
- Check What changed on the finished row. It lists renamed columns, counts anything cut or replaced, and names the sheet that was used when the workbook has more than one. Then download the .dbf.
What's preserved, what changes
| What | Result |
|---|---|
| Values | Preserved 29 of 29 test files come back from a DBF to Excel to DBF round trip with every value intact or its change reported. |
| Numbers, dates, true/false and text | Preserved Detected per column and written as C, D, L and N fields. |
| Text encoding | Preserved Choose from DOS 437, DOS 850, DOS 866, Windows-1250, Windows-1251, Windows-1252, Windows-1254 and UTF-8. Every choice except UTF-8 is recorded in the file's language driver byte. |
| Text longer than 254 bytes | Approximated Cut to fit a 254-byte dBase text field, with a count in the notes (98 values in our round trips). |
| Column names | Approximated Turned into dBase field names: capitals, up to 10 characters of A–Z, 0–9 and _, listed in a field map. |
| Characters the encoding lacks | Approximated Become "?" and are counted in the notes. UTF-8 keeps every character. |
| Line breaks inside a cell | Approximated A Windows line break (CR LF) arrives as a single line feed (LF): 329 values in our round trips. |
| Dates with a time of day | Approximated Written as text such as 2024-01-15 14:30:00, since dBase III has no date-time field. |
| Cell formatting | Not converted Percent, currency and number formats stay in Excel: the stored value is written, so 12.5% arrives as 0.125. |
| Memo fields | Not converted Not written: long text goes into a text field of up to 254 bytes. |
| More than 255 columns | Not converted Not converted: the DBF we write holds at most 255 fields. |
Preserved: arrives as it is. Approximated: arrives in a simpler form, as the row describes. Not converted: stays behind.
These rows come from turning our test tables into Excel workbooks and back into DBF files. Values come through, apart from changes the notes report and one they don't see: a Windows line break inside a cell (CR LF) comes back as a plain line feed, because the library we read workbooks with drops the CR. Excel itself puts a line feed in a cell when you press Alt+Enter, so this mostly touches workbooks made from other files. A workbook goes through the same DBF writer as a CSV, so the same limits apply: the cut at 254 bytes, the field names and the characters an encoding lacks. What differs is how the sheet is read, which is the next section.
What we take from each cell
We read the value Excel stored, not the way the cell is formatted. Most of the time that's exactly what you want, but a few cases are worth knowing:
- Formatting isn't carried. 12.5% is stored as 0.125 and a price shown as $1,250.00 as 1250, and those are the values the DBF gets.
- Numbers keep 15 significant digits when they have a fraction, the precision Excel shows, so a stored 0.30000000000000004 arrives as 0.3. Whole numbers up to 9,007,199,254,740,991 keep every digit.
- Leading zeros from a number format are lost. A postal code shown as 00501 through a 00000 format is stored as 501. Format the column as Text in Excel and retype the codes, and they stay text in the DBF too.
- Formulas arrive as their last calculated result. A workbook written by a program that never calculated it can have empty formula cells; opening and saving it in Excel fills them in.
- Dates come from cells with a date format and become date fields. A cell whose format also shows the time becomes text such as 2024-01-31 14:30:00, since dBase III has no date-time field.
- TRUE and FALSE become a logical field. Error values such as #N/A arrive empty.
- Merged cells keep their value in the top-left cell only, so the rest of a merged block arrives empty.
- Hidden rows and columns are converted too. Delete them first if the DBF shouldn't have them. Completely empty rows are skipped.
Once the values are read, field names and types follow the same rules as for CSV files, which the CSV page sets out under how columns become fields.
Picking an encoding for Excel text
Excel keeps text in Unicode, so a workbook can hold any alphabet. A single-byte code page has room for 256 characters, so the encoding you choose decides which ones survive. Choose the code page of the program that will read the DBF: Western for English and Western European text, Central European, Cyrillic or Turkish for those languages, a DOS page for DOS-era software. UTF-8 keeps every character, with one catch for older programs, which the encoding section of CSV to DBF explains along with the other choices.
Large workbooks
The whole sheet is unpacked in memory before the DBF is written, so we ask before starting a workbook over 50 MB. XLSX files are compressed, which means a sheet can be far bigger than its file size suggests. The DBF itself holds up to 255 columns.
If something goes wrong
- "This file is password protected…" A workbook with a password to open is encrypted as a whole. Remove the password in Excel, save, and try again. Protection that only stops a sheet from being edited doesn't get in the way.
- "This file looks damaged…" The file isn't a complete workbook, often because a download or copy didn't finish. Open it in Excel if you can, and save it again as an Excel Workbook (.xlsx).
- "This format isn't on our list yet." This page takes .xlsx only. Save .xls, .xlsm or .ods files as an Excel Workbook first.
- The wrong sheet came through. Only the first sheet is read, and the notes name it. Drag the sheet you want to the front and convert again.
- A number column became text. At least one cell in it holds text: a number stored as text, which Excel marks with a small green triangle, or a note such as "n/a". Convert or clear those cells and try again.
- "This table doesn't fit in a DBF here." The sheet has more columns than a DBF allows, or is too big for this tab's memory. Split it into two workbooks and convert each one.
Try it with a sample file
Download sample-products.xlsx (9 KB), a small workbook with two sheets, and drop it above. Only the first sheet, Products, is converted, and the notes say so. Its five columns become number, text, number, logical and date fields, and the empty cells arrive blank. With Western (Windows-1252), the two Turkish letters in one product name become "?" and are counted; choose Turkish (Windows-1254) or UTF-8 to keep them.
For a bigger sheet, download sample-world-countries.dbf (519 KB), convert it on the DBF to Excel page, and drop the new .xlsx here with UTF-8 chosen. Edit it first if you like, deleting a few countries or adding a column, and watch the change land in the DBF.
The products workbook is our own, free to reuse (CC0); the country table is 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.
| Feature | Free | Pro |
|---|---|---|
| Single files | Free, no watermark, no wait | Same |
| Files at a time | Up to 5 | Up to 100 |
| ZIP and folder input | Pick the files instead | Yes |
| Large files | Works; may be slow on some devices | Built for them |
| Account | None needed | Optional |
| Where files go | Nowhere: converted on your device | Nowhere: converted on your device |
| Price | $0 | Week 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.
- Open your browser's developer tools (F12, or Option + Command + I on a Mac) and choose the Network tab.
- Convert a file on this page.
- 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.
- 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