首页 / 浏览问题 / 云GIS / 问题详情
iServer的拓展服务API能否上传excel文件读取数据返回结果
260EXP 2023年01月06日
想要制作一个在iServer上发布的拓展服务

服务的内容是上传一个带有指定信息的excel,然后在服务端根据excel内的要素进行分析,分析后将结果作为新的excel返回

请问iServer的拓展服务能否直接使用excel文件?

如果不能的话,是否只能先读取出excel里的内容,然后传递给拓展服务最后返回结果?

1个回答

您好,如果您是使用纯iserver的扩展开发是使用iObject JAVA进行开发的,使用iObject JAVA本身的接口可以读取CSV文件中的数据到JAVA代码中,

而xls和xlsx的文件是微软office专有格式,如果您想将xls或者xlsx的数据读取到JAVA代码中,读取这个环节建议您使用office官方的组件或者三方组件。

对于纯iserver扩展本身就是正常的JAVA后端服务器开发,在数据上没有什么特殊限制的,

如果您是调用iserver的服务接口来使用的话,那iserver产品本身的rest api服务接口是有可以导入excel的接口的。

1.使用 services > root > dataCatalog > relationship > dataImport,在iserver的数据目录服务中将excel进行数据注册

(excel数据注册支持PostGIS数据库、PostgreSQL、HDFS)

2.使用自动化建模算子,将excel导入为数据集

http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iObjectsJava/index.html

http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/index.htm

希望可以帮助到您。

于丁
1
10,538EXP 2023年01月06日
感谢解答,

是使用iObject JAVA进行开发的

如果要导入的是CSV的话,请问应该如何在iObjects.Java中导入

另外,作为iServer的拓展服务发布的话,请问也能直接导入csv吗
iObject JAVA纯iserver扩展开发的话,使用ImportDataInfoCSV接口就可以把csv导入成数据集。

这个接口csv使用的是文件路径,所以你作为后端服务开发的话,建议实现的思路有两种,

建议方案一:

前端在对这个服务发请求时,会把前端本地的文件上传到后端(上传文件这个不用基于GIS产品或者组件来,单纯的网络开发技术),上传后文件和后端程序代码(扩展开发了的iserver)在同一个机子上,那用这个文件路径就可以用接口导入成数据集。

建议方案二:

局域网、其他的特殊网络环境、共享目录或者一些网络穿透映射技术,让你后端可以访问到前端发请求的这个文件,同样在后端可以有效读取使用这个文件路径的情况下,就可以用接口导入成数据集。
多谢,我去试试
不客气,通常都是第一种方案哈,主流网站发图片、资源,或者在线处理转换分析什么的,选择了本机文件后会有一个“上传进度”就是这种业务逻辑。
...