My company just upgraded to Office 2007 and now I am no longer able to easily manipulate and create dbf's. I do not understand MS's decision by removing this capability but alas there is no use crying over spilled milk. I ask everyone here, what do you use (preferably free) to fill all your dbf needs?
13 Answers
For opening and editing, Open Excel 2007 and simply drag the dbf file to it.
To create a new DBF file (http://www.excelforum.com/excel-2007-help/643473-save-as-dbf.html):
In Excel 2007, Go to "file > Save As.." and choose .csv
Now open Access 2007 and Choose import data and select the csv file
The data then loads into a table and from there you can export the data from Access into a DBF file! Choosing either DBF3, DBF4, DBF5
Google Docs - docs.google.com upload .xls(.xlsx save download dbf.) or Jakub's method
update November 2015: Google Drive now replaces Google Docs, to upload a .dbf go to the drive and folder the right click and an upload option is available to transfer files. If .dbf does not work, rename .txt before upload and rename on google drive to .dbf does work currently
I load my xls, xlsx file into arcmap and open the attribute table, hide any columns that are unwanted, select only rows with data (sometimes it shows extra null rows), and then export data (choose the dbf type).
I've been using R. In the core packages there is a package called foreign which enables you to read/write dbf
files with ease. You can read a dbf
file that is associated with a shapefile, and completely overwrite it without problems (assuming that you do not delete a row). You can also just output a dataframe into dbf
format, which I sometimes do as it is a compact data format. The code is as follows, where dataframe
is your data, and file
is the filename:
write.dbf(dataframe, file, factor2char = TRUE, max_nchar = 254)
for editing, either of these two is handy (never tried to create):
http://www.pablosoftwaresolutions.com/html/dbf_explorer.html
I've successfully used the FoxPro ODBC driver to connect to a folder full of DBFs. There are a few caveats if you're going to delete rows (make sure the DBF driver posts the deletes, not just the diffs) but otherwise it's not too bad.
You can connect from other clients beyond Office, too, which is handy for scripting purposes and the like.
I used to use a program called DBF Viewer plus, it sounds similar to DBF Manager, I haven't used it for a couple of years, so not sure if still available
it's available from here http://www.alexnolan.net/software/
DBF Manager is able to view, edit, create dBase and FoxPro including Visual FoxPro databases.
I sometimes use Infolib, or more accurately the command line dbf2info utilities created from infolib, by Randy Deardorff of the US Environment Protection Agency, circa 1998. Although ostensibly written only for the 'info' in arcinfo, it works with plain text files too. Unfortunately the windows binaries don't work on 64bit windows.
-=[ INFOLIB.BAT ]=-
AVAILABLE INFOLIB COMMANDS (recall by typing "infolib")
ascii2info dbf2info dbfitems dbflist
dbflook info2ascii info2dbf infodel
infodir infoitems infolist infolook
I couldn't find an existing internet host for these tools, so I put the stuff from my stash on GitHub: https://github.com/maphew/infolib (binaries too).
Update: Credits for infolib proper goes to Todd Stellhorn of ESRI, with Randy being responsible for the tool collection. From the readme "These programs make extensive use of a public domain C package for direct INFO access called infolib written by Todd Stellhorn of ESRI."
- Save yourxls as a csv
- Open the csv with Notepad and save as yourcsv.txt
- From the Command Window in dBase, CREA yourdbf, and define the fields, types and widths matching those in yourxls; Ctrl-W to save
- APPE FROM yourcsv DELI
- BROW to check the data. Done! Make sure you have the level for native dBase files set to 4 in the BDE Config tab (7 is now the default) for dBase tables or ArcView 3.x will not recognize the dbf. Also comply with field naming rules in dBase (max width 10, no spaces or special chars).
If it's Excel's usability you're after (extended search and replace, repeat previous values, fill, ...) and you can change the default storage format: use personal-gdb instead of shapefiles. Then you can just open the .mdb in Access and edit there or push/pull from .xls as needed.
Remember it's important to keep the ObjectID or FID intact, so no adding or deleting rows from the Access and Excel side, and be careful to only touch the feature class tables. As long as you keep backups and tread with care and attention you'll be fine.
An added benefit is being able to use Longer_Field_Names and increased row limits.