I have postcode level data in an Excel workbook and ideally I would like to have a map on another sheet of the area that I am interested in. The postcodes in my dataset should be highlighted within that map. I am using Excel 2010 and have no prior experience with GIS but plenty of experience with C#, Java. Any ideas of how I can achieve this? I looked for open source add-ins and didn't find an awful lot. Is there another way I can achieve what I want?
4 回答
您可以查看非 gis 用户的解决方案:http: //www.esri.com/software/esri-maps-for-office
它需要 Office 2010(在您的情况下没问题),它基于私有GIS 软件(无 FLOSS)。在视频部分有一些例子。
我使用Topo.ly。您可以从 Excel 中复制所有邮政编码并将其粘贴到 Topo.ly,它会在 Google 地图上绘制它们。它还托管您的地图,因此您可以保存并稍后返回,或与他人共享。
这可能是一个很好的起点。您将需要一些 WPF 知识
必应地图 Windows Presentation Foundation (WPF) 控件,版本 1.0
然后使用 VSTO,您可以将其集成到 Excel 使用 Office 解决方案中的 WPF 控件
示例 WPF 应用程序是@Integrating Bing Maps With WPF
编辑:
在非 WPF 解决方案上找不到太多,但您可以尝试一下
使用 Visual Studio 2005 Tools for Office Second Edition 集成虚拟地球地图和 Excel 2007
为了将来参考或有类似问题的人,您可以使用名为 Funfun 的 Excel 加载项在 Excel 2016 中创建数据映射。我在这里做了两个示例。
如您所见,屏幕截图的中间部分有一些代码。那是因为 Funfun 允许您直接在 Excel 中编写和运行 JavaScript 代码,而且 JavaScript 代码可以使用存储在工作表中的数据。使用 JavaScript 的能力意味着您可以使用 HighCharts.js 或 D3.js 等第三方库来绘制数据图等图表。在这两个示例中,我实际上使用了 highmaps,它是 HighCharts.js 库的一部分。highmaps.js 已经有不同的模板,从世界地图到不同国家的特定地图。我相信你能找到你需要的地图。
Funfun 还有一个在线编辑器,您可以在其中使用您的数据测试您的 JavaScript 代码。您可以在下面的链接中查看上述示例的详细代码。
https://www.funfun.io/1/#/edit/5a5c9a50404f66229bda3ae0
https://www.funfun.io/1/#/edit/5925036104ce702ccfb22b0e
如果您对在线编辑器中获得的结果感到满意,您可以使用上面的 URL 轻松地将结果加载到 Excel 中。当然,首先您需要从Insert - My add-ins 插入Funfun 插件。以下是一些屏幕截图,展示了如何执行此操作。
披露:我是 Funfun 的开发者