QGISでフィールド長を変更する方法


11

QGIS 1.7.4で作成したシェープファイルがあります。フィールドの1つは長さ80のストリングです。フィールドにもっと長い刺し傷を受け入れさせたいのですが、その長さを変更する方法がわかりません。どうすればいいですか?

ありがとう。

回答:


15

ここにそれが働いたことに驚いた解決策があります!!!

警告:最初にバックアップを作成します。これは実験ですが、今はうまくいきました。

OpenOffice Calcアプリケーションを使用して、特定のシェープファイルの.dbfを開きます。値を80から任意の値に変更します。下の画像をご覧ください。驚くべきことは、これらのフィールド定義がExcelに表示されなかったということです。

ここに画像の説明を入力してください


+1-優れた小さなトリック。Libre / Openoffice DBFでこれらの番号が常に迷惑であることがわかりましたが、今では使用方法がわかります。
シンバマング

1
次に、これは、特にCalsの式を使用したい場合や、場所によってデータを結合したいときにフィールド名をaufにしたい場合に、高速でダーティなデータの編集とフォーマットに非常に多く使用します。長すぎます...覚えておいてください:FID列がなければ行を並べ替えて正しく並べ替えないでください。並べ替えると、すべての機能に間違った属性データが含まれてしまいます。
サンダーカ

これを試してみましたが、後続の列の値が破損しました。しかし、それは賢いアイデアです。
エヴァン

2
これまでにデータ破損が発生したことはありません。誤ってデータ型を変更しませんでしたか(たとえば、Cは文字の略です。詳細はdbase.com/knowledgebase/int/db7_file_fmt.htm)。ただし、ヘッダーに適合しないデータを含むdbfを保存しようとすると、Calcは警告を出します。私はまだあなたのデータがどのように破損するか、それはほとんど何を意味するかもしれないかについてはよくわかりません
...-サンダーカ

2
ソートについて:フィーチャデータ(ポリゴン、ポイント、ライン)と属性データ間の接続は行番号で行われているようです。Calcで属性ファイルを使用して保存すると、間違った属性が接続されます機能(言うまでもなく混同)。
サンデルカ

12

私の知る限り、QGISのシェープファイルフィールドの長さを変更することはできません。新しいフィールドを作成することをお勧めします。

  • 属性テーブルを開く
  • 編集をオンに切り替え
  • 「新しい列」
    を選択し、タイプをテキストに設定し、目的の幅を選択します

古いフィールドに既にデータがある場合は、フィールド計算機を使用して新しいフィールドに入力します。

  • 「フィールド計算機」を選択します
  • 「既存のフィールドを更新」にチェックマークを付けて、新しいフィールドを選択します
  • 「フィールド」の下の古いフィールド名をダブルクリックします
  • [OK]をクリックして、編集内容を保存することを忘れないでください。

良い方法。これらの手順の最後に、テーブルマネージャー(プラグイン)に移動して古いフィールドを削除し、(必要に応じて)新しいフィールドの名前を変更します。
イアンズ

4

Excelでこれを実行しました。Excelでdbfを開き、変更する列ヘッダーを右クリックして[列幅]を選択します。必要な長さに変更してから、dbfとして保存します。私にとってはうまくいくようです。


列幅は列の表示幅ではないのですか?
ビナヤン

3
@Vinayan、この質問は、QGISでの表示方法ではなく、フィールドが保持できるものを明示的に参照しています。Excelでは、列の表示幅を使用して、ファイルを保存するときにフィールドをどれだけ広くするかをガイドします。これが、この答えが機能する理由です。詳細については、quantdec.com / SYSEN597 / GTKAV / section4 / chapter_15a.htm#Recipeをご覧ください。ただし、古いバージョンのExcelでのみ機能します。最新版では私が聞くDBFファイルは書き込まれません:
。– whuber

@whuberそれは興味深い..iは私のアプリケーションにそのタイプの機能(リサイズ)を決して入れないだろう:
vinayan

0

QGISの属性テーブルの列サイズを変更するためのガイド

  1. ベクターレイヤーを右クリックして、プロパティを選択します。
  2. フィールドタブに移動します。
  3. 新しい列を追加します(このボタンは右上隅にあります。a。すべてのデータが列と一致することを確認して、広げようとします。長さの変更は希望の長さに変更します。
  4. [フィールド計算]ボタンを選択します(このボタンは右上隅にあります。)
  5. 「既存のフィールドを更新」を確認します
  6. [選択したフィールドのみを更新する]がオフになっていることを確認します。
  7. チェックボックスの隣のメニューから新しいフィールドを選択します
  8. フィールドメニューの下の古いフィールドをダブルクリックします
  9. 大丈夫ヒットして編集を保存
  10. * Table Managerプラグインに移動しますa。プラグインテーブルテーブルマネージャー
  11. 古いフィールドを選択して削除
  12. 新しいフィールドの名前を古いものに変更します。

* Table Managerプラグインをインストールする必要があります。


0

YPくんによってより徹底的に説明されているように、Scroのソリューションはちょうど私のために働いた。QGIS 3.4での1つの変更。YP-kunのステップ10および11(古い列を削除するため)にテーブルマネージャーを使用する必要はありません。実際、Table Managerはプラグインマネージャーでは使用できなくなったため、もはや存在していません。これで、YP-kunのステップ1から9の後、レイヤーのレイヤープロパティに移動できます(レイヤーパネルでレイヤーをダブルクリックするか、右クリックして[プロパティ]をクリックします)> [ソースフィールド]> [編集]ボタンをクリックします>次に、削除する古いフィールドを選択し、[フィールドの削除]ボタンをクリックし、[編集]ボタンをもう一度クリックして編集を閉じ、変更を保存します。単一のレイヤーで単一のフィールドの長さを変更するために多くのことをやり通すように思えますが、そうです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.