在电子表格中,可以实现地图染色,但是地图区域上无法显示数据。可以使用宏代码点击地图区域,弹出相关数据。如下:
类型 | 对象 | 事件 |
---|---|---|
ServerSide | spreadsheetReport | onBeforeOutput |
function main(spreadsheetReport) { //地图数据在第二个sheet,获取第二个sheet,从0开始计数 var sheet = spreadsheetReport.sheets[1]; //获取名称字段 var posList = sheet.getExpandedPositions("A13"); //获取数据字段 var posList2 = sheet.getExpandedPositions("B13"); //把地区名称和数据添加到电子表格的MAP对象 customProperties中 var customProperties = spreadsheetReport.customProperties; for (var i = 0; i < posList.length; i++) { var pos = posList[i]; var pos2 = posList2[i]; var value = sheet.getCellValue(pos); var value2 = sheet.getCellValue(pos2); if (value) { customProperties.put(value, value2); } } } |
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onRender |
function main(spreadsheetReport) { //地图在第一个sheet,需要判断当前sheet是不是第一个sheet if (spreadsheetReport.currentSheetIndex != 0) return; //获取服务端宏中的MAP对象 var customProperties = spreadsheetReport.elemSheetFrame.contentWindow.customProperties; //遍历电子表格中的图形对象,并添加点击事件 for (var name in spreadsheetReport.shapesMap) { var value = customProperties[name]; if (value) { var shape = spreadsheetReport.shapesMap[name]; shape.style.cursor = "pointer"; //传递地区名称和数据给onclick方法 shape.setAttribute("_name", name); shape.setAttribute("_value", value); shape.onclick = function() { var name = this.getAttribute("_name"); var value = this.getAttribute("_value"); //弹窗 var modalWindow = jsloader.resolve("freequery.common.modalWindow"); modalWindow.open(value, name); } } } } |
资源下载:migrate.xml