找回密码
 立即注册

QQ登录

只需一步,快速开始

初一呀
初级会员   /  发表于:2022-10-13 11:48  /   查看:1724  /  回复:11
image.png114474486.png

1.如何给合并之后的表单设置样式呢
2.为什么回显出的4个sheet样式不见了(之前在ssjson文件中样式是调整好的),应该如何回显出样式呢

11 个回复

正序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-17 09:47:45
12#
初一呀 发表于 2022-10-14 19:52
您好,我这边已经解决了问题啦,合并sheet以及样式问题都好了,但是还有个小小问题,删除前面合并的sheet ...

如果想要遍历删除sheet,因为索引值一直在变化,所以每次都要删除索引为0的sheet,同时记录删除的次数,可以参考下面的代码

  1.         <input id='removeSheet' type='button' value='removeSheet'/>


  2. document.getElementById('removeSheet').addEventListener('click', function () {
  3.             let num = 0;
  4.             for (let i = 0; i < 7; i++) {
  5.                 spread.removeSheet(i); //每次删除索引为0的sheet后,第一个sheet索引为0。
  6.                 if (num !== 5) {
  7.                     i--;
  8.                     num++;
  9.                 } else {
  10.                     break;
  11.                 }
  12.             }
  13.         })
复制代码


回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-10-14 19:52:31
11#
Lynn.Dou 发表于 2022-10-14 17:37
demo收到,这边测试下,有结果贴中回复您。

您好,我这边已经解决了问题啦,合并sheet以及样式问题都好了,但是还有个小小问题,删除前面合并的sheet只能   // workbook.removeSheet(5);
          // workbook.removeSheet(4);
          // workbook.removeSheet(3);
          // workbook.removeSheet(2);
          // workbook.removeSheet(1);
          // workbook.removeSheet(0);这样删除吗,可以循环删除吗?我循环了,他压根不走循环
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-14 17:37:33
10#
demo收到,这边测试下,有结果贴中回复您。
回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-10-14 10:40:07
9#
初一呀 发表于 2022-10-14 10:36
您好,这个是上传的附件,麻烦您帮我看下,辛苦了

合并spead.rar (3.79 MB, 下载次数: 54)
回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-10-14 10:36:57
8#
Lynn.Dou 发表于 2022-10-13 18:01
参考上图上传demo,需要可复现您描述的问题。

您好,这个是上传的附件,麻烦您帮我看下,辛苦了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-13 18:01:08
7#
image.png860509338.png

参考上图上传demo,需要可复现您描述的问题。
回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-10-13 17:12:17
6#
Lynn.Dou 发表于 2022-10-13 16:33
从代码看未能直接定位原因,您在前面提供链接所示的demo基础上,将您测试的文件以及代码补充上去,能复现此 ...

<!--
* @Author: 胡思艳
* @Date: 2022-10-13 16:44:00
* @LastEditTime: 2022-10-13 17:07:48
* @LastEditors: 胡思艳
* @Description:
* @FilePath: \合并spread&sheet\合并Spread&sheet.html
-->
<html>

<head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" type="text/css" href="resources/gc.spread.sheets.excel2013white.14.0.10.css">
    <script src="https://cdn.grapecity.com.cn/spreadjs/scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
    <script src="resources/js/gc.spread.sheets.all.14.0.8.min.js" type="text/javascript"></script>
    <script src="resources/js/gc.spread.excelio.14.0.8.min.js" type="text/javascript"></script>
    <script src="resources/js/gc.spread.sheets.print.14.0.8.min.js" type="text/javascript"></script>
    <script src="resources/js/gc.spread.sheets.pdf.14.0.8.min.js" type="text/javascript"></script>
    <script src="resources/js/gc.spread.sheets.resources.zh.14.0.8.min.js" type="text/javascript"></script>
    <script src="https://cdn.grapecity.com.cn/spreadjs/scripts/FileSaver.min.js" type="text/javascript"></script>
    <!-- <script src="resources/hbtest1.js" type="text/javascript"></script>
    <script src="resources/hbtest2.js" type="text/javascript"></script> -->
    <script src="resources/data1.js" type="text/javascript"></script>
    <script src="resources/data2.js" type="text/javascript"></script>
    <style>
        .sample-tutorial {
            position: relative;
            height: 100%;
            overflow: hidden;
        }

        .sample-spreadsheets {
            width: calc(100% - 280px);
            height: 100%;
            overflow: hidden;
            float: left;
        }
    </style>
</head>

<body>

    <div class="sample-tutorial">
        <div id="ss" class="sample-spreadsheets"></div>
        <div id="temp" class="sample-spreadsheets"></div>
    </div>
    <script>

        $(document).ready(function () {
            // 创建空表单
            var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
            // 这里的data是从后台获取的
            var sheets = []
            let rowList = [5, 15, 26, 10]  //这里也是后台获取的
            var jsonData = [data1, data2, data3, data4];
            var sheetCount = datas.length

            for (let i = 0; i < sheetCount; i++) {
                sheets.push(spread.sheets)
            }
            for (var i = 0; i < sheets.length; i++) {
                var item = jsonData;
                item = JSON.parse(item);
                spread.fromJSON(item);
                var sheet = spread.getActiveSheet()
                spread.addNamedStyle(list[2].namedStyle);
                sheetList.push(sheet)
                sheetJSON = sheet.toJSON();
                jsonString.push(JSON.stringify(sheetJSON))
                allSheets.push(sheetJSON);
            }

            for (var i = 0; i < allSheets.length; i++) {
                var
                    sheet = spread.getSheet(i);
                if (!sheet) {
                    spread.addSheet();
                    sheet = spread.getSheet(i);
                }
                sheetJSON = allSheets;
                sheet.fromJSON(sheetJSON);
            }

            var workbook = spread
            let sheetAll = []
            let newArr = []
            //新增一个newSheet,用来放拼接后的表单
            var newSheet = new GC.Spread.Sheets.Worksheet("new sheet");
            let sheetName = newSheet.name()
            workbook.addSheet(workbook.getSheetCount(), newSheet);
            workbook.options.allowExtendPasteRange = true; //如果设置为true,当粘贴区域不够时会扩展粘贴区域
            rowList.unshift(0)

            for (let i = 0; i < rowList.length; i++) {
                let s = 0
                for (let j = 0; j <= i; j++) {
                    s += Number(rowList[j])
                }
                newArr.push(s)
            }
            for (var i = 0; i < allSheets.length; i++) {
                var getSheet = workbook.getSheet(i);
                sheetAll.push(getSheet)
                // newSheet.fromJSON(JSON.parse(jsonSheet));
            }
            console.log(allSheets, 'allSheets.');
            console.log(sheetAll, 'sheetAll');
            for (let i = 0; i < allSheets.length; i++) {

                var fromRange2 = [new GC.Spread.Sheets.Range(-1, -1, -1, -1)];
                var toRange2 = [new GC.Spread.Sheets.Range(newArr, 0)];
                workbook.commandManager().execute({
                    cmd: "clipboardPaste",
                    sheetName: sheetName,
                    fromSheet: sheetAll,
                    fromRanges: fromRange2,
                    pastedRanges: toRange2,
                    isCutting: false,
                    clipboardText: "",
                    pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all
                });
            }

            for (let i = 0; i < sheetAll.length; i++) {
                // spread.removeSheet(0)
            }


        });

    </script>
</body>

</html>
回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-10-13 17:10:42
5#
Lynn.Dou 发表于 2022-10-13 16:33
从代码看未能直接定位原因,您在前面提供链接所示的demo基础上,将您测试的文件以及代码补充上去,能复现此 ...

如和将压缩文件上传上去呢
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-13 16:33:44
地板
从代码看未能直接定位原因,您在前面提供链接所示的demo基础上,将您测试的文件以及代码补充上去,能复现此问题即可。
这边在代码基础上进一步调研问题原因。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部