找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

11 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-13 12:20:58
沙发
您好,
您是如何合并sheet的呢?可以参考下这篇文章:
https://gcdn.grapecity.com.cn/fo ... 4&fromuid=59119
回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-10-13 13:38:05
板凳
Lynn.Dou 发表于 2022-10-13 12:20
您好,
您是如何合并sheet的呢?可以参考下这篇文章:
https://gcdn.grapecity.com.cn/forum.php?mod=vi ...

   mergeSheet() {
        var workbook = this.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,当粘贴区域不够时会扩展粘贴区域
        this.rowList.unshift(0)
        for (let i = 0; i < this.rowList.length; i++) {
          let s = 0
          for (let j = 0; j <= i; j++) {
            s += Number(this.rowList[j])
          }
          newArr.push(s)
        }
        for (var i = 0; i < this.allSheets.length; i++) {
          var getSheet = workbook.getSheet(i);
          sheetAll.push(getSheet)
        }

        for (let i = 0; i < this.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
          });

        }
//删除前面几个sheet,留下最后一个
        for (let i = 0; i < sheetAll.length; i++) {
          this.spread.removeSheet(0)
        }
      
      },


这样进行合并的
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-13 16:33:44
地板
从代码看未能直接定位原因,您在前面提供链接所示的demo基础上,将您测试的文件以及代码补充上去,能复现此问题即可。
这边在代码基础上进一步调研问题原因。
回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-10-13 17:10:42
5#
Lynn.Dou 发表于 2022-10-13 16:33
从代码看未能直接定位原因,您在前面提供链接所示的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>
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-13 18:01:08
7#
image.png860509338.png

参考上图上传demo,需要可复现您描述的问题。
回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-10-14 10:36:57
8#
Lynn.Dou 发表于 2022-10-13 18:01
参考上图上传demo,需要可复现您描述的问题。

您好,这个是上传的附件,麻烦您帮我看下,辛苦了
回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-10-14 10:40:07
9#
初一呀 发表于 2022-10-14 10:36
您好,这个是上传的附件,麻烦您帮我看下,辛苦了

合并spead.rar (3.79 MB, 下载次数: 37)
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-14 17:37:33
10#
demo收到,这边测试下,有结果贴中回复您。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部