Skip to content

Convert Shapefile to CSV

1

Add your Shapefile

Drop a shapefile anywhere on this page

.zip · it never leaves the browser

2

Options

Only needed when the archive has no .cpg and text looks wrong.
≈ 11 cm on the ground
Keep every vertex
00verticesunchanged
One column, every geometry type
3

Your CSV

Add a shapefile and the CSV appears here, with its feature counts and anything this pair cannot carry.

Converted in this tab. Your Shapefile is never uploaded — reading, converting and writing all run in the browser, so this works offline once the page has loaded.
— , —
FidelityShapefileCSV

What comes across, and what cannot

Preserved

  • Geometry — points come across coordinate for coordinate; nothing is reprojected, because both sides are WGS84 longitude/latitude.
  • Every attribute becomes a column. The header is the union of all property keys across the file, so features with different fields still line up.
  • Row order matches feature order, so you can join the result back onto the original file.

Dropped

  • Lines and polygons, but only if you ask for it. The default WKT geometry column keeps every geometry type intact; switching to separate longitude and latitude columns can only describe a point, and anything else comes out with empty coordinate cells.
  • Elevation. A flat CSV has no third ordinate; keep the WKT geometry column if you need the Z value, because WKT encodes it.
  • One thing that is not this tool's doing: a .dbf caps field names at ten characters, so truncated names such as POPULATIO arrive that way in the source and cannot be recovered.

Esri Shapefile (zipped)

Not one file but a set — .shp geometry, .dbf attributes, .prj projection, .cpg text encoding — which is why you upload the whole thing as a .zip. Field names are capped at ten characters and the .dbf has no Unicode of its own.

.zip · application/zip

CSV (comma-separated values)

A spreadsheet, not a spatial format. It becomes spatial when two columns hold longitude and latitude, or when one column holds a WKT geometry — which is how anything other than a point survives the round trip.

.csv · .tsv · text/csv

HowHow it works

Convert Shapefile to CSV, step by step

  1. Step 1

    Add your Shapefile

    Drop a shapefile anywhere on the page, paste it, point at a URL, or press Sample to start from real data. Several files at once are fine.

  2. Step 2

    Set what matters

    Coordinate precision and simplification on every pair, plus the handful of settings this one needs — the .dbf text encoding, and a WKT column or longitude/latitude columns.

  3. Step 3

    Take the CSV

    Read the feature counts and the warning list, then download, copy, or open the result in the Spatly studio to style and publish it.

PrivateRuns in your browser

Your data never leaves the page

Every conversion, measurement and export happens client-side. Nothing is uploaded, logged or stored — you can even use this offline once the page has loaded. Only “Open in Studio” sends data, and only after you sign in.

Go furtherTurn a GeoJSON into an interactive mapRead the guide
FAQQuestions

Good to know

What is preserved when converting Shapefile to CSV?
Geometry — points come across coordinate for coordinate; nothing is reprojected, because both sides are WGS84 longitude/latitude. Every attribute becomes a column. The header is the union of all property keys across the file, so features with different fields still line up. Row order matches feature order, so you can join the result back onto the original file.
What is lost converting Shapefile to CSV?
Lines and polygons, but only if you ask for it. The default WKT geometry column keeps every geometry type intact; switching to separate longitude and latitude columns can only describe a point, and anything else comes out with empty coordinate cells. Elevation. A flat CSV has no third ordinate; keep the WKT geometry column if you need the Z value, because WKT encodes it. One thing that is not this tool's doing: a .dbf caps field names at ten characters, so truncated names such as POPULATIO arrive that way in the source and cannot be recovered.
Do I upload the .shp on its own?
No — zip the whole set and drop the .zip. A shapefile is at least a .shp, a .shx and a .dbf; without the .dbf you get geometry with no attributes, and without the .prj the coordinates are assumed to be WGS84 already.
My Turkish, Greek or Cyrillic field values come out as mojibake.
That is the .dbf's text encoding. If the zip has no .cpg file the reader cannot know it, so set the encoding hint in step 2 — windows-1254, ISO-8859-9, windows-1251 and UTF-8 are all offered — and the attribute table is re-read with it.
Is the shapefile reprojected?
Yes, when a .prj is present: coordinates are transformed to WGS84 longitude/latitude, which is what CSV expects. A shapefile with no .prj is taken as already being in WGS84.
How is the geometry written into a flat table?
Two ways, and you pick. A single WKT column keeps every geometry type exactly — that is the default, and the one to use if you have lines or polygons. Separate longitude and latitude columns are friendlier to Excel and Google Sheets but can only describe a point.
What are the columns?
The union of every attribute key in the file, in first-seen order, plus the geometry column(s). Features missing a key get an empty cell rather than being dropped, so the row count always equals the feature count.
Is my file uploaded anywhere?
No. The Shapefile is read, converted and written entirely inside this page — there is no upload, no queue, no server-side copy and no size limit imposed by a plan. Large files are parsed in a background worker so the page stays responsive. The only action that transmits anything is Open in Studio, and that happens after you sign in and press it.
Is there a limit on file size or number of files?
There is no imposed limit; the practical ceiling is your browser's memory. Files over about 5 MB are handed to a web worker so the interface keeps responding, and you can drop several files at once — each is converted separately and the set can be downloaded as one zip.