How to convert CSV or Excel coordinates to Google Earth (KML)
A spreadsheet of coordinates is just a table until you put it on a map. This guide shows how to convert CSV to KML for Google Earth, and an Excel file follows the same path. The conversion is free and runs in your browser, so nothing is uploaded.
Key facts
- Google Earth reads KML and KMZ but not .csv or .xlsx, so a spreadsheet must be converted first.
- Coordinates should be decimal degrees; 5 decimal places locates a point to about 1.1 m.
- The conversion runs in WebAssembly on your device, so 0 bytes are uploaded, and rows without valid coordinates are skipped.
What your sheet needs
The sheet needs a header row and two coordinate columns, and nothing more. A file this small already converts: a header of name,lat,lon, then one row per place, such as Eiffel Tower,48.8584,2.2945. Headings such as lat and lon, latitude and longitude, or y and x are detected for you. Any other column, such as an ID, a category or a date, rides along as an attribute.
Decimal degrees such as 48.8584 and 2.2945 are the safest coordinate format. A sheet that holds degrees, minutes and seconds can go through the coordinate converter first.
The 4 steps
- Open the Spreadsheet to map tool and drop in your CSV or Excel file.
- Check the Longitude and Latitude menus, because the tool picks them for you and the guess is worth confirming.
- Watch the map preview, where your points should land in the right country.
- Choose KML or KMZ, click Convert, and open the downloaded file in Google Earth.
3 habits that prevent most problems
- Make row 1 a real header, because the converter reads it to name the columns and the popups.
- Delete any total rows at the bottom of the sheet, since they carry no coordinates.
- Store the coordinate columns as numbers rather than text, so no value gets skipped as unreadable.
The swapped latitude and longitude mistake
Putting longitude where latitude belongs is the classic spreadsheet error, and the range test catches it every time. Latitude runs from -90 to 90, so any value above 90 must be a longitude. The signs carry meaning as well: negative latitude means south, and negative longitude means west. If your points land in the wrong hemisphere, swap the two columns and convert again. The live preview makes the mistake obvious before you download anything.
Labels, popups and big sheets
Google Earth takes each placemark label from the name column, so put your label text there and keep it short, because long labels overlap when points sit close together. Every other column shows up in the placemark popup, and a short name plus a detailed popup reads far better than a label that tries to carry everything.
Thousands of rows convert without trouble, but Google Earth itself slows down once it draws tens of thousands of labels at once. Split a very large file by region or category, and you can then toggle each layer on and off as you need it.
“The most common spreadsheet-to-map mistake is latitude and longitude in the wrong columns. The points land in the ocean before the data is even wrong.”
Frequently asked questions
Why does the output have fewer placemarks than my sheet has rows?
Those rows had a blank or non-numeric coordinate. Sort by the latitude column and check the top and bottom, because stray text usually clusters there.
My sheet has UTM eastings and northings. Will it work?
Yes. Tell the converter which coordinate system the values use, for example EPSG:32631 for UTM zone 31N, and it converts them to latitude and longitude during the export.
Can Google Earth import a CSV by itself?
Google Earth Pro can import delimited text, but it does not handle Excel files or projected coordinates well. Converting to KML first gives a cleaner result and a file you can share.
Why are all my points in the ocean near Africa?
Coordinates of 0,0 place a point off the coast of West Africa, nicknamed Null Island. It means the latitude and longitude values were blank, zero or not recognized as numbers. Check that the correct columns are selected and stored as numbers rather than text.