找回密码
 立即注册

QQ登录

只需一步,快速开始

HEXIONLY

注册会员

7

主题

20

帖子

55

积分

注册会员

积分
55
HEXIONLY
注册会员   /  发表于:2023-3-27 17:02  /   查看:1044  /  回复:5
1金币
使用toJSON导出切割只剩下一个sheet的spread,存储为json,然后IO读取就不会显示了。
我的json文件在附件:

java:

  1. private String inputReadFile(String filePath) {
  2. try (BufferedReader reader = new BufferedReader(new InputStreamReader(Files.newInputStream(Paths.get(filePath)),
  3. StandardCharsets.UTF_8))) {
  4. StringBuilder sb = new StringBuilder();
  5. String line;
  6. while ((line = reader.readLine()) != null) {
  7. sb.append(line);
  8. }
  9. return sb.toString();
  10. } catch (IOException e) {
  11. throw new Exception(e.toString());
  12. }
  13. }
复制代码
javascript:

  1. loadSpread(node) {
  2. api.loadSheetTemp(node.filePath).then((res) => {
  3. if (res.code == 200) {
  4. let jsonStr = JSON.stringify(res.data);
  5. this.spread.fromJSON(JSON.parse(jsonStr));
  6. }
  7. });
  8. },
复制代码
导出:

  1. let file = event.target.files[0];
  2.             let excelIO = new IO();
  3.             excelIO.open(file, (json) => {
  4.                 let workbookObj = json;
  5.                 splitExcelSheet(this.spreadTemp, workbookObj).then((res) => {
  6.                     this.importSplitJson(res, loading);
  7.                 });
  8.             });
复制代码
  1. export function splitExcelSheet(spreadInit, workbookObj) {
  2.     return new Promise((resolve, reject) => {
  3.         let list = [];
  4.         spreadInit.fromJSON(workbookObj);
  5.         let sheetCount = spreadInit.getSheetCount();
  6.         for(let i = 0; i < sheetCount; i++) {
  7.             spreadInit.fromJSON(workbookObj);
  8.             for(let j = sheetCount - 1; j >= 0; j--) {
  9.                 if(j != i) {
  10.                     spreadInit.removeSheet(j);
  11.                 }
  12.             }
  13.             let fileName = spreadInit.getSheet(0).name();
  14.             list.push({ fileName: fileName, file: spreadInit.toJSON() });
  15.         }
  16.         resolve(list.filter(item => item.fileName != "Evaluation Version"));
  17.     });
  18. }
复制代码


dd.rar

6.52 KB, 下载次数: 32

最佳答案

查看完整内容

您可以用https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html 这个demo测试一下 均可以正常导入 所以可以排除文件本身的问题了。因为上面试用的是SpreadJS最新版本,所以建议您试一下升级至新版本,借此来排除版本问题。

5 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-27 17:02:27
来自 2#
您可以用https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html 这个demo测试一下
均可以正常导入
image.png729447936.png
image.png591498107.png
image.png794465026.png
所以可以排除文件本身的问题了。因为上面试用的是SpreadJS最新版本,所以建议您试一下升级至新版本,借此来排除版本问题。
回复 使用道具 举报
HEXIONLY
注册会员   /  发表于:2023-3-27 18:13:57
3#
Clark.Pan 发表于 2023-3-27 17:58
您可以用https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html 这个demo测试一下
均可以正常导 ...

嗯是的,我直接用<input type="file"/>拿json是出得来的,用IO流inputStream-String读取传给前端这种出不来来,是不是这种的需要怎么特殊处理呢?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-27 18:29:20
4#
应该不用,你可以打断点对比一下两种方式的json有什么不同
回复 使用道具 举报
HEXIONLY
注册会员   /  发表于:2023-3-31 16:50:29
5#
Clark.Pan 发表于 2023-3-27 18:29
应该不用,你可以打断点对比一下两种方式的json有什么不同

解决了,大意了,我自己后端返回的就是字符串,忘了转json格式了
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-31 17:01:24
6#

那就结贴了,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部