4

I would like to incorporate MS Office into my GIS program. I have been using QGIS and was wondering if this would be possible?

I am trying to create a one stop shop for my staff to be able to write reports and print maps from one program instead of going between programs.

An example would be I have a complete form with blank fields. The fields would be pulled from the map attributes.

6
  • QGIS is written in Python, MS Office is .NET so unlikley - but MS has MapPOINT microsoft.com/mappoint/en-us/mappoint.aspx
    – Mapperz
    Commented May 20, 2014 at 14:57
  • ESRI has Esri Maps for Office: esri.com/software/arcgis/arcgisonline/features/apps
    – HeikkiVesanto
    Commented May 20, 2014 at 15:09
  • 2
    What is more important to you: spatial data or tabular data? Do you have a lot of dynamic maps, and/or requirements to query vector data? Or do you have a lot of user input and only basic needs for spatial representation? Or both? That would impact what type of solution might fit your needs better.
    – deroses
    Commented May 20, 2014 at 17:25
  • Well they both are. I know that is a non-answer but it is true. When the analyst input data, which they would have to for each instance, they also draw the polygons at the same time. The data they entered is what is used to populate the form. The only thing that changes from each entry is the calculations based on the land. I hope this clears some stuff up. If not I will try to be succinct next time.
    – user30321
    Commented May 20, 2014 at 19:06
  • @Mapperz QGIS is written in C, C++, and Python ;)
    – Nathan W
    Commented May 21, 2014 at 6:20

2 Answers 2

1

That does help, but as the previous answer states - you might not have an easy solution.

Since you mention QGIS I'll assume you don't have ESRI and/or are looking for more FOSS options. You didn't mention any languages so I'll assume you don't want to write your own code if necessary. Those combined assumptions will limit the full functionality of what you want.

If you don't want to mess with code here's the best workaround I can think of:

Assuming also that you want an embedded solution: you could use Spatialite in QGIS (or ESRI 10.2) for visualizing and editing all of your data, and then create an ODBC connection between that database and Excel - once it is in Excel you could do whatever you wanted with it, including queries, etc. This would cover the data part of your request, but would leave out the maps part. [You could feed data back to QGIS via delimited text from Excel, although it would be static. You won't easily be editing the ODBC via Excel.] At a minimum that would provide you a good link between the spatial and tabular data, even if that link lived outside of GIS.
If you wanted to extend that link, you could get simplified basemaps from inside Excel by writing google maps urls from parameters (lat/long/zoom/type) from Excel. If you wanted vector data from your maps instead of just location you could create tiles (there is a QGIS plugin) - assuming it is pushed to a database in a similar format to mbtiles you should be able to query that into Excel via the same ODBC but I haven't tried it.

The other option (if you need dynamic maps and/or dynamic spatial parameters like lat/lng or want to query the data in a spatial way,etc) would be to live inside GIS instead. You could use python in QGIS and have your Office data in true row/column format - although at that point you might consider another technology or one of the paid options in the comments above: those might end up being 'cheaper' relative to building and maintaining a dynamically linked system.

[I'd probably use a variant of leaflet draw with some custom built data fields if I was trying to make the analyst's lives easier - sounds like the workflow is rather straightforward.]

Google Maps URL Parameters: https://stackoverflow.com/questions/2660201/what-parameters-should-i-use-in-a-google-maps-url-to-go-to-a-lat-lon

SQLite Drivers: http://www.ch-werner.de/sqliteodbc/

QGIS And Spatialite: http://www.qgis.org/en/docs/training_manual/databases/spatialite.html

3
  • +1 - You could probably feed spatial data back to Spatialite from Excel with WKT fields, though haven't tested that. Also, here's a link to a simple SQLite / ODBC driver
    – Simbamangu
    Commented May 21, 2014 at 6:09
  • As far as I know OOTB ArcGIS for Desktop access to SpatiaLite is read only.
    – PolyGeo
    Commented May 21, 2014 at 6:38
  • Thanks for getting back to me. I will go through and try and implement so of the suggestions. What if I used Libre Office instead of MS Office?
    – user30321
    Commented May 22, 2014 at 17:47
0

As Mapperz said, there's a difference in the base languages, add-ins for QGIS are written in Python which doesn't have an API for Excel, or office in general. The QGIS program itself is written in C/C++/Python and others. I doubt a request that Microsoft creates a python API is going to be addressed any time soon.

What you can do is export a CSV or DBF from QGIS and then os.system (see this link) to a .net compiled program to do your custom reporting.

Programs can be written in VB or C# and the express versions of these languages will complie to an executable and are free to use for non-commercial applications.

1
  • You can access Excel, Word, etc with it's COM API using Python. Have done in the past. It's not great but you can wrap up what you need and get going pretty well.
    – Nathan W
    Commented May 21, 2014 at 6:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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