0

Layers exported from QGIS as Excel format are the topic here.

I see when I edit this files in Excel(exported from QGIS) are simultaneously edited in equivalent file (non-spatial table) which was created during export (and lies in project self).

What I really want is to merge, (better to say overwrite) updated columns in "original" spatial layer from equvalent non-spatial table ...

I tried with -Layer Properties -Joins functionality in QGIS but it adds a column which I selected and it doesn't update/overwrite selected Column/Field.

Is this possible with standard functionalities in QGIS at all? Or Python plugin is only option (or even maybe PostGIS Database)?

P.S. I have also tried with Excel Sync plugin but seems this updates from QGIS to Excel and I want reversely

2
  • You want to edit your attribute table in Excel and "sync" the changes to your source attribute table? Im sure what you want to do in Excel is possible directly in QGIS, if you are ok with that. Then what do you want to do in Excel? Or add a ID column in QGIS, export the table to Excel, drop all fields in QGIS except ID, attribute join the Excel table back to QGIS using the ID column.
    – BERA
    Dec 18 '20 at 12:22
  • Hi,actually yes this might be solution to - export into Excel -reimport -delete all the columns except ID in Geopackage and then join but then naming of the columns/fields might be the problem. Just have to figure out how to delete individual columns in Qgis . I am starter with Qgis, Dec 18 '20 at 13:06
1

If I understood your question right, you have a spatial layer, let's say a polygon layer as Geopackage. You export the attributes as Excel file. Than you change attributes values in Excel and you would like to have the changes back in your Geopackage/Polygon layer.

As such, afaik this is not possible directly. You can however make a spatial join (what you already did), but then you get new fields. Why is this a problem?

If you want to update your original fields, I see two possibilities:

  1. Update them manually: create a spatial join, then use the field calculator to update the original field based on the field created by spatial join.

  2. You can create your original fields as virtual fields, than they will update automatically. However, that means that you first create a new field (what you want to avoid, if I understand you correctly). Afaik it is not possible to convert a regular field to a virtual field.

3
  • Thanks on your answer. I guess i will have to use Python or Databases. I guess using Python to achieve the same , in a way that imported excel updates changes to original Geopackage. Database however might be maybe little too sofisticated solution in this point in time Dec 20 '20 at 10:47
  • Depending on the use case, that is maybe an overkill. Solution one is fast and efficient and does imply just minor manual work - far less probably than writing a Python script or creating a database (where it is still unclear how to get the changes made in Excel to the database, thus basically the same problem).
    – Babel
    Dec 20 '20 at 10:50
  • seems this what u have suggested under point 1. actualy might work. But then i will have to use Python because there will be 10 fields or more to update from joined fields to "original" fields. thanks again Dec 20 '20 at 16:58

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.