I've got a layer in QGIS that is comprised of points. Its attribute table doesn't have (show) the corresponding x and y coordinates for each point. Is there a way for me to extract a list of coordinates for those points? (ideally into a CSV, but not required)

Also, for the exported list of coordinates (say, in a CSV file), how do I include the existing attribute table with it?

For your information, I am running QGIS on Mac OS X 10.6.7.


7 Answers 7


Depending on your version, you should be able to right-click on the layer you want to export, and select Save As... Choose Comma Separated Value from the dropdown list of the dialog box that appears. Then, in the Layers part of the OGR creation options, type GEOMETRY=AS_XY or GEOMETRY=AS_XYZ depending on the dimensionality of your source data.

QGIS Save vector layer as... dialog

  • That's great and it works! One more thing: Can I also export columns I already have in the original layer's into the CSV, along with the X, Y coordinated? Thanks.
    – hpy
    Apr 22, 2011 at 16:34
  • 2
    Cool, glad it works! Make sure you have the "Skip attribute creation" checkbox unchecked. I'm not a fan of negative checkboxes like that, it always makes me think twice about what state I need it in. Apr 22, 2011 at 20:28
  • Very useful tips!
    – Heinz
    Jun 11, 2013 at 9:27
  • For anyone else on Windows 10 (QGIS 4.3.1) confused about where this gets saved, check your "C:\OSGeo4W64\bin" folder.
    – Wassadamo
    Jan 11, 2019 at 21:03
  • Note that if your geometry has somehow become a multipart geometry, GEOMETRY=AS_XY will silently fail. You can can fix this by processing the layer with 'Multipart to singleparts'
    – daviewales
    Aug 11, 2021 at 6:12

In the Field calculator in the Attribute Table you may use $x and $y to calculate your coordinates into a new attribute.

For that, open the Attribute Table, click on the Field calculator (top arrow) and enter $x or/and $y (middle arrow) in the expression pane. A preview of your newly created output is shown below (bottom arrow).

enter image description here

  • Is it possible to get the X Y in different coordinate system? I mean the XY of my points is in WGS 84 but I would like to list the XY values in different coordinate system in my attribute table.
    – Petr
    Nov 27, 2019 at 13:46

You may like this for the added detail which is gathered

For QGIS 1.7 on Win7 I open the attribute table for the layer, use the buttons to; invert selection to select all rows, copy to clipboard

and paste into Excel. The first column contains Well Known Text information which maybe more useful to you.


I now use the plugin mmqgis to export geometry to csv, it is more desired by CAD users at the other end...

  • BWill, should we merge your other account @Willy? That would help your reputation and simplify your interactions here.
    – whuber
    Apr 13, 2012 at 14:42
  • Restored original edit. Apr 16, 2012 at 14:33
  • When copying from the attribute table and pasting into Excel, sometimes a feature will occupy multiple rows, and this results in overwriting any data in the row below.
    – csk
    Feb 26, 2018 at 19:30

Virtual layers enables you to do exactly that. It is an icon on the Layers Toolbar or you can go Layer->Add layer->Add/Edit Virtual Layer...` Then you will face a window like the one below:

enter image description here

In the Query you can select geometry properties like x and y cooridnates and attributes values from the Attribute Table, like the id in the example.

Once you have a table with the desired fields, you can use save asand select csv as a format.

enter image description here

The underlying engine uses SQLite and Spatialite to operate, so the documentation for the queries could be found here: https://www.gaia-gis.it/fossil/libspatialite/wiki?name=misc-docs


for your question if you have postgressql and built-in postgis you can do this adding new column which is named coord_x and coord_y. and sql to update this column is:

UPDATE table_name
      SET coord_x = X(the_geom),coord_y = Y(the_geom);

that is it :)


I asked a similar question a few weeks ago as Calculating latitude and longitude of points using QGIS. It's only true for QGIS 1.7 though (which I'm running on OSX and it seems quite stable).


How to add coordinates to attribute table
I was looking for an answer to the first part of the question as I just wanted to see the coordinates in QGIS. The information above helped me work out a solution so I am posting for other QGIS beginners. I am using Windows10 and QGIS 3.4

  1. Open Layer Properties
  2. Select Source Fields (initially only id existed)
    enter image description here
  3. Select Field Calculator
  4. Select Create new field, enter name and choose decimal number as Output field type
  5. Choose Geometry on lower right list

enter image description here
6. Select $x for x coodinate and save
enter image description here
7. Repeat by selecting $y for y coordinate and your coordinates will appear in the attribute table.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.