如何在QGIS中更改字段长度


11

我有一个在QGIS 1.7.4中制作的shapefile。字段之一是长度为80的字符串。我想让该字段接受更长的字符串,但我不知道如何更改其长度。我该怎么做呢?

谢谢。

Answers:


15

这是一个使我惊讶的解决方案!

警告:请先进行备份。这是一个实验,尽管它对我现在还是有用的。

使用OpenOffice Calc应用程序打开特定shapefile的.dbf。将值从80更改为所需的任何值。请参见下图。令人惊讶的是,这些字段定义在Excel中不可见。具有开放性的优点!!

在此处输入图片说明


+1-绝妙的小把戏。在Libre / Openoffice DBF中总是发现那些令人讨厌的数字,但现在看到了用法。
Simbamangu 2012年

1
我将其作为第二个要素,将其大量用于快速而肮脏的数据编辑和格式化(尤其是当我想使用Cals的公式时),或者当我只想按位置连接某些数据,并且字段名再次变为auf时太长了……请记住:不要在没有FID列的情况下对行进行重新排序以正确地重新排列它们,否则以后每个功能都会有一些错误的属性数据。
SAnderka

我尝试了此操作,它破坏了后续列中的值。不过,这是一个聪明的主意。
伊万(Evan)

2
到目前为止,我从未经历过任何数据损坏。您是否意外更改了数据类型(例如,C代表字符,在此说明了更多信息:dbase.com/knowledgebase/int/db7_file_fmt.htm)?尽管Calc确实会警告您,如果您尝试使用不适合标题的数据保存dbf。我仍然不太了解您的数据以哪种方式损坏,这几乎意味着什么……
SAnderka 2012年

2
关于排序:要素数据(多边形,点,线)与属性数据之间的连接似乎是由行号构成的,如果您在Calc中使用任何属性文件并将其保存,错误的属性将与您的连接功能(可以说是混用的)。
SAnderka

12

据我所知,您不能更改QGIS中shapefile字段的长度。建议创建一个新字段:

  • 打开属性表
  • 开启编辑
  • 选择“新建列”并将
    类型设置为文本,然后选择所需的宽度

如果旧字段中已经有数据,请使用字段计算器填充新字段:

  • 选择“字段计算器”
  • 勾选“更新现有字段”并选择新字段
  • 双击“字段”下的旧字段名称
  • 点击“确定”,不要忘记保存您的编辑。

好方法 这些步骤结束后,进入表管理器(一个插件)以删除旧字段,并(如有必要)重命名新字段。
IanS

4

我刚刚在Excel中完成了此操作。在Excel中打开dbf,右键单击要更改的列标题,然后选择“列宽”。更改为所需的长度,然后另存为dbf。似乎可以为我工作。


列宽不应该是列的显示宽度吗?
vinayan 2012年

3
@Vinayan,该问题明确地指向该字段可以保存的内容,而不是它在QGIS中的显示方式。Excel使用列的显示宽度作为保存文件时使字段变宽的指导,这就是该答案起作用的原因。有关详细信息,请访问Quantdec.com/SYSEN597/GTKAV/section4/chapter_15a.htm#Recipe。但是,它仅在旧版本的Excel中有效。我不会听到最新的DBF文件将写入:
。– whuber

@whuber,这很有趣..i永远不会在我的应用程序中放入那种类型的功能(调整大小):-)
vinayan 2012年

0

在QGIS中更改属性表的列大小的指南

  1. 右键单击矢量层,然后选择属性。
  2. 转到字段选项卡。
  3. 添加一个新列(此按钮在右上角。a。确保将所有数据与您所要的列相匹配,并尝试扩大。长度更改为所需的长度除外。
  4. 选择“字段计算器”按钮(此按钮在右上角。)
  5. 选中“更新现有字段”
  6. 确保未选中“仅更新所选字段”。
  7. 从复选框旁边的菜单中选择新字段
  8. 在“字段菜单”下,双击旧字段
  9. 点击确定并保存修改
  10. *转到表管理器插件。插件表表管理器
  11. 选择并删除旧字段
  12. 将新字段重命名为旧字段。

*您将需要安装Table Manager插件。


0

YP-kun更为详尽地解释了Scro的解决方案,它对我有用。现在使用QGIS 3.4进行了一项更改,无需将表管理器用于YP-kun的步骤10和11(删除旧列)。实际上,表管理器显然不再可用,因为它现在在插件管理器中不可用。现在,在YP-kun的步骤1-9完成之后,您可以转到该图层的“图层属性”(在“图层”面板中双击该图层,或者右键单击该图层并单击“属性”)>“源字段”>单击“编辑”按钮>然后选择要删除的旧字段>单击删除字段按钮>然后再次单击编辑按钮以关闭编辑>保存更改。更改单个字段中单个字段的长度似乎需要花很多时间,但事实就是如此。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.