Convert CSV to DBF
dBASE binary,
in your browser.
Free CSV to dBASE .dbf converter. Creates a real binary dBASE III file in pure JavaScript — no libraries, no server. Compatible with QGIS, ArcGIS, LibreOffice Base, FoxPro and Shapefile attribute tables. Your data never leaves your device.
DBF field types generated
CSVShift auto-detects the appropriate dBASE field type for each CSV column.
DBF field name rules
dBASE III field names have strict constraints — CSVShift handles them automatically.
- Maximum 10 characters
- Uppercase only (auto-converted)
- Letters, digits, underscore only
- Must start with a letter or underscore
- No spaces or special characters
- All names must be unique
- Converts to UPPERCASE
- Replaces invalid chars with
_ - Truncates names to 10 characters
- Prefixes numeric starts with
_ - Deduplicates by appending numbers
- Shows field map in the result
How the dBASE III binary format works
Structure of a .dbf file — written entirely in JavaScript.
32-byte file header
The header stores version (0x03 = dBASE III), last-modified date, record count, header size in bytes, and record size in bytes — all as little-endian binary integers. The header tells any DBF reader exactly where records start and how large each one is.
32-byte field descriptors
One 32-byte block per column: field name (11 bytes, null-padded), field type byte (C/N/L), 4 reserved bytes, field length, decimal count, and 14 more reserved bytes. Terminated by a 0x0D byte. This is the DBF "schema" — defines how to read each field in every record.
Fixed-width records
Each record starts with a 0x20 space byte (deletion flag), followed by each field value padded or truncated to its fixed length: C fields left-padded with spaces, N fields right-padded, L fields as a single T or F byte. Every record is the same size — enabling O(1) random access by record number.
CSV to DBF in Python
For scripting and GIS workflows.
When do you need CSV to DBF?
GIS and Shapefile attribute data
Shapefiles consist of .shp (geometry), .shx (index) and .dbf (attributes). When you have CSV attribute data that needs to be joined with existing geometry, creating a .dbf directly allows attaching it to a .shp without going through a full GIS import workflow.
Legacy business applications
Older ERP systems, accounting software and business applications built on dBASE, Clipper or FoxPro accept .dbf files as their native import format. Converting a modern CSV export to .dbf enables data import into these legacy systems without custom connectors.
LibreOffice Base
LibreOffice Base can open .dbf files directly as database tables. Converting a CSV to .dbf produces a file that LibreOffice Base opens as a table with correct field types, sortable and queryable with SQL — without setting up a full database connection.
Remote sensing and surveying
GPS and surveying equipment, LiDAR processing software and many remote sensing tools output and consume DBF files for point cloud attributes, GPS waypoints and survey measurements. CSV-to-DBF is a common step in field data workflows.
Related CSV tools
dBASE III binary
written in your browser. No libraries.
CSVShift writes the dBASE III binary format directly in JavaScript — the same approach used for the CSV to Parquet tool. The 32-byte file header, 32-byte field descriptors, fixed-width records and EOF marker are all assembled in a Uint8Array and downloaded as a genuine .dbf file. No SheetJS, no dbfjs, no external dependencies.
The output passes validation in QGIS, ArcGIS, LibreOffice Base and dbfread (Python). Field names are sanitised to the dBASE 10-character uppercase constraint automatically.
