こんにちは
地物数が多い場合(500以上くらい)だと取り回しが面倒かもしれませんが、地物の
ジオメトリ情報も含んだ GeoCSV として扱う方法もあります。
Shapefile と異なりファイル内に位置情報があるため、行の順番の変更も可能です。
1. エクセルで新規ファイルを開き、 Ctrl+A で全セルを選択したのちセル書式を「文字列」に
2. QGIS で対象レイヤの属性テーブルを開き、 Ctrl+A で全地物を選択し Ctrl+C でコピー
3. エクセルに貼り付け
4. エクセルで適宜編集
5. エクセルで「タブ区切りテキスト (.txt)」形式で保存
6. 各列の型定義ファイルを作成する(詳細後述)
7. QGIS の「CSV テキストレイヤを追加」からテキストファイルを読み込む
この際、ファイル形式は「カスタム区切り」で「タブ」を選択
ジオメトリの CRS (座標系)は正しく(座標値が意図するとおりに)設定する
8. QGIS 上で処理やレイヤの編集を行う場合は GeoPackage などの形式に変換保存する
※ 3. で貼り付けた際に、 A 列目に Point や LineString や MultiPolygon などからはじまる
地物の位置情報がない場合(1列目がそのまま1列目になる場合)は QGIS の設定→
オプション→データソース→地物のコピーを「プレーンテキスト( WKT ジオメトリ)」を
選択して、再度コピー、貼り付けを行ってください。
QGIS に読み込む際に、各列のデータ形式を指定するために CSVT 形式のファイルを
作成します。もし、テキストファイルが gis_data.txt の場合は gis_data.csvt と
いう名前で保存してください。
CSVT ファイルは、各列順に WKT (ジオメトリ; A 列)、 String (文字列)、
Integer (整数)、 Real (実数)などをカンマ区切りで(タブ区切りではない)
1行で記述します。
たとえば、「位置情報、 ID 、名称、住所、面積」という列ならば次のようなファイルです。
WKT,Integer,String,String,Real
列が増えたり、順番が変わらないのであれば、一度作った CSVT ファイルを使い続けても
構いません。(テキストファイルと名前が一致しているならば)