请选择 进入手机版 | 继续访问电脑版

葡萄城产品技术社区

    注册

QQ登录

SpreadJS

纯前端控件,类似Excel,问题响应通道

ComponentOne WPF

前沿科技,针对WPF桌面,问题响应通道

C1FlexGrid视频教程

WinForm平台,功能强大的表格控件,初学者必看视频

ActiveReport视频教程

轻松搞定报表,从头开始学AR,视频教程

搜索
查看: 701|回复: 4

[SpreadJS] JAVA应用SpreadJS实现服务器端导入导出

[复制链接]

12

主题

2581

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
16031
发表于 2017-5-18 15:06:15 | 显示全部楼层 |阅读模式
本帖最后由 ClarkPan 于 2017-5-18 16:09 编辑

本demo通过SpreadJS的前端导出导出与JAVA后端结合,实现分从服务器端导入Excel与导出Excel保存至服务器端这两个功能:

从服务器端导入Excel:
这部分使用纯前端实现,纯前端实现有一个弊端就是,浏览器没有权限访问服务器上工程目录以外的路径(会造成跨域),所以需要将服务器端的Excel放入工程目录下。然后下载到前端直接打开,核心代码如下:
  1. var excelIo = new GC.Spread.Excel.IO();
  2.     var excelFilePath = 'resources/Excel/importExcel.xlsx';
  3.     var xhr = new XMLHttpRequest();
  4.     xhr.open('GET', excelFilePath, true);
  5.     xhr.responseType = 'blob';   
  6.     xhr.onload = function(e) {
  7.       if (this.status == 200) {
  8.         // get binary data as a response
  9.         var blob = this.response;
  10.         // convert Excel to JSON
  11.         excelIo.open(blob, function (json) {
  12.             var workbookObj = json;
  13.             spread.fromJSON(workbookObj);
  14.         }, function (e) {
  15.             // process error
  16.             alert(e.errorMessage);
  17.         }, {});
  18.       }
  19.     };
  20.      
  21.     xhr.send();
复制代码

导出Excel保存至服务器端:
这部分使用前端导出功能与后端java结合的方式来实现,首先通过前端Excel导出,生成导出文件,然后通过formdata来承载导出文件,之后通过ajax将formdata传至后端java。后端java使用文件操作将文件保存至服务器端。
这里有以下需要注意的地方:
formdata没有办法改变enctype,而我们需要的用entype为multipart/form-data类型的form来承载导出文件。这里需要在jsp页面上创建一个空的form,并将其entype设置为multipart/form-data:
  1. <form name="myform" id="myform" enctype="multipart/form-data" method="post"></form>
复制代码
之后js中只需要初始化一个该form的formdata实例即可:
  1. var fd = new FormData(document.forms.namedItem("myform"));
复制代码
全部代码已经上传附件,可以下载进行参考。












本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!5分为非常满意!

葡萄城控件服务团队
官方网站: http://www.gcpowertools.com.cn
回复

使用道具 举报

12

主题

2581

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
16031
 楼主| 发表于 2017-6-16 16:49:34 | 显示全部楼层
本帖最后由 ClarkPan 于 2017-6-16 16:51 编辑

附件是一个maven工程。需要您使用IDE进行导入,另外不明白您说得代码不全的意思, 您那边断定代码不全的原因是什么?
请点击评分,对我的服务做出评价!5分为非常满意!

葡萄城控件服务团队
官方网站: http://www.gcpowertools.com.cn
回复 支持 反对

使用道具 举报

0

主题

6

帖子

54

积分

注册会员

积分
54
发表于 2017-6-16 17:24:57 | 显示全部楼层
我以为用的是java代码后端实现的。。。。这个excelIO.js需要另外购买吗?
回复 支持 反对

使用道具 举报

12

主题

2581

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
16031
 楼主| 发表于 2017-6-16 17:42:17 | 显示全部楼层
o0chen 发表于 2017-6-16 17:24
我以为用的是java代码后端实现的。。。。这个excelIO.js需要另外购买吗?

这个是spreadjs产品包中就包含的,我们的在线导入导出功能就是使用的该js。
请点击评分,对我的服务做出评价!5分为非常满意!

葡萄城控件服务团队
官方网站: http://www.gcpowertools.com.cn
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

欢迎关注葡萄城控件

小黑屋|手机版|Archiver|葡萄城控件官网 ( 沪ICP备05020274号

GMT+8, 2017-12-15 04:31 , Processed in 1.179733 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表