Tell me more ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have a shapefile I made in QGIS 1.7.4. One of the fields is a String of length 80. I'd like to make the field accept longer stings, but I can't figure out how to change its length. How do I do this?

Thanks.

share|improve this question

3 Answers

up vote 7 down vote accepted

Here is a solution which surprised me that it worked!!!

Warning: first make a backup.This is an experiment though it worked for me just now..

open the .dbf of the particular shapefile using OpenOffice Calc application. Change value from 80 to whatever value you want. Please see the image below. Surprising thing is these field definitions were not visible in Excel..Advantage of being Open!!

enter image description here

share|improve this answer
+1 - excellent little trick. Always found those numbers annoying in Libre/Openoffice DBFs but now see the use. – Simbamangu Mar 13 '12 at 17:01
I second this, use it quite a lot for quick and dirty data editing and formating (especially when I want to make use of Cals's formulas), or when I just want to join some data by location and once more the fieldname turns auf to be too long... Just remember: don't re-sort the rows without some FID-column to rearrange them correctly, or every feature will have some wrong attribute data afterwards. – SAnderka Mar 13 '12 at 20:06
I tried this, and it corrupted the values in subsequent columns. It's a clever idea, though. – Evan Mar 13 '12 at 22:34
2  
I have never experienced any data corruption so far. Did you accidentally change data types (C, for example, stands for character, more is explained here: dbase.com/knowledgebase/int/db7_file_fmt.htm)? Although Calc does warn you if you try to save a dbf with data in it that doesn't fit the header. I still don't quite understand in which way your data gets corrupted, that could almost mean anything... – SAnderka Mar 14 '12 at 18:08
1  
And about the sorting: The connection between feature data (polygons, points, lines) and the attribute data seems to be made by row number, to if you resort any attribute-file in Calc and save it, wrong attributes will be connected with your features (mixed up, so to say). – SAnderka Mar 14 '12 at 18:11
show 7 more comments

To my knowledge, you cannot alter the length of shapefile fields in QGIS. Recommend creating a new field:

  • Open attribute table
  • Toggle editing on
  • Select 'New Column' and set
    type to text, and choose the desired width

If there is already data in the old field, use field calculator to populate the new field:

  • Select 'Field Calculator'
  • Tick 'Update existing field' and choose the new field
  • Double-click the old field name under 'Fields'
  • Hit 'OK' and don't forget to save your edits.
share|improve this answer

I've just done this in Excel. open the dbf in Excel, right click the column header you want to change and select Column Width. Change to the length you need, then save as a dbf. Seemed to work OK for me.

share|improve this answer
isn't column width supposed to be the display width of the column? – vinayan Jun 28 '12 at 15:37
3  
@Vinayan, the question explicitly refers to what the field can hold, not how it is displayed in QGIS. Excel uses display width of columns as a guide to how wide to make the field when it saves the file, which is why this answer works. For details please visit quantdec.com/SYSEN597/GTKAV/section4/chapter_15a.htm#Recipe. However, it works only in older versions of Excel. The latest will not write DBF files I hear :-(. – whuber Jun 28 '12 at 16:28
@whuber , that is interesting..i would never put that type of functionality(resizing) in my applications :-) – vinayan Jun 28 '12 at 16:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.