QGIS:Becoming a GIS Power User
上QQ阅读APP看书,第一时间看更新

Joining tabular data

In many real-life situations, we get additional non-spatial data in the form of spreadsheets or text files. The good news is that we can load XLS files by simply dragging them into QGIS from the file browser or using Add Vector Layer. Don't let the wording fool you! It really works without any geometry data in the file. The file can even contain more than one table. You will see the following dialog, which lets you choose which table (or tables) you want to load:

QGIS will automatically recognize the names and data types of columns in an XLS table. It's quite easy to tell because numerical values are aligned to the right in the attribute table, as shown in this screenshot:

We can also load tabular data from delimited text files, as we saw in Chapter 2, Viewing Spatial Data, when we loaded a point layer from a delimited text file. To load a delimited text file that contains only tabular data but no geometry information, we just need to enable the No geometry (attribute table only) option.

Setting up a join in Layer Properties

After loading the tabular data from either the spreadsheet or text file, we can continue to join this non-spatial data to a vector layer (for instance, our airports.shp dataset, as shown in the following example). To do this, we go to the vector's Layer Properties | Joins section. Here, we can add a new join by clicking on the green plus button. All we have to do is select the tabular Join layer and Join field (of the tabular layer), which will contain values that match those in the Target field (of the vector layer). Additionally, we can—if we want to—select a subset of the fields to be joined by enabling the Choose which fields are joined option. For example, the settings shown in the following screenshot will add only the some value field. Additionally, we use a Custom field name prefix instead of using the entire join layer name, which would be the default option.

Checking join results in the attribute table

Once the join is added, we can see the extended attribute table and use the new appended attributes (as shown in the following screenshot) for styling and labeling. The way joins work in QGIS is as follows: the join layer's attributes are appended to the original layer's attribute table. The number of features in the original layer is not changed. Whenever there is a match between the join and the target field, the attribute value is filled in; otherwise, you see NULL entries.

You can save the joined layer permanently using Save as… to create the new file.