找回密码
 立即注册

QQ登录

只需一步,快速开始

yhjsbok

注册会员

8

主题

27

帖子

184

积分

注册会员

积分
184
yhjsbok
注册会员   /  发表于:2018-11-18 20:40  /   查看:5853  /  回复:10
我用表单绑定,导出excel后,再导入后speadjs 列标题都变了,导进去列标题成了第1行数据,潘工帮忙解决下。
blob280249938.png
blob155653990.png

10 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-11-19 08:58:23
沙发
您是用设计器导入,还是用代码导入?

如果是代码导入,给fromJSON添加一个参数:frozenColumnsAsRowHeaders

代码示例:
  1. spread.fromJSON({frozenColumnsAsRowHeaders: true});
复制代码


具体用法参考API:
http://help.grapecity.com/spread ... kbook~fromJSON.html
回复 使用道具 举报
yhjsbok
注册会员   /  发表于:2018-11-19 09:16:08
板凳
KevinChen 发表于 2018-11-19 08:58
您是用设计器导入,还是用代码导入?

如果是代码导入,给fromJSON添加一个参数:frozenColumnsAsRowHead ...

还是没解决呢,@潘工

blob612888488.png
blob242061461.png
        $("#UpdateImport").click(function () {
            bootbox.confirm("Confirm this operation?", function (result) {
                if (result) {
                    var excelFile = document.getElementById("fileToUpload").files[0];
                    var excelIO = new GC.Spread.Excel.IO();
                    excelIO.open(excelFile, function (json) {
                        var workbookObj = json;
                        spread.fromJSON(workbookObj, { frozenColumnsAsRowHeaders: true });
                    }, function (e) {
                        console.log(e);
                    });
                }
            });
        })


        function ExportFile() {
            var fileName = "Headcount.xlsx";

            var json = spread.toJSON({includeBindingSource: true, columnHeadersAsFrozenRows: true });
            var excelIO = new GC.Spread.Excel.IO();
            excelIO.save(json, function (blob) {
                saveAs(blob, fileName);
            }, function (e) {
                console.log(e);
            });
        }

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-11-19 10:06:29
地板
您好:

您在fromJSON中做如下设置试一下spread.fromJSON(workbookObj,{ frozenRowsAsColumnHeaders: true });
回复 使用道具 举报
yhjsbok
注册会员   /  发表于:2018-11-19 12:21:36
5#
ClarkPan 发表于 2018-11-19 10:06
您好:

您在fromJSON中做如下设置试一下spread.fromJSON(workbookObj,{ frozenRowsAsColumnHeaders: tru ...

数据是可以导入进去了,但是保存之前的样式都没有了,
另外在保存的时候报错

                    //修改
                    var dirtyRows = sheet.getDirtyRows();

gc.spread.sheets.all.11.2.2.min.js:30 Uncaught TypeError: Cannot read property 'hUa' of null
回复 使用道具 举报
yhjsbok
注册会员   /  发表于:2018-11-19 14:18:59
6#
这个是导入的excel

Headcount (23).zip

15.35 KB, 下载次数: 211

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-11-19 16:13:59
7#
您好:

您说的问题是哪里
我这边导入后显示没有什么问题:
image.png379407042.png
回复 使用道具 举报
yhjsbok
注册会员   /  发表于:2018-11-19 18:12:28
8#
ClarkPan 发表于 2018-11-19 16:13
您好:

您说的问题是哪里

     格式问题现在好了,我提交数据报下面的错:::@潘工
             //修改
                    var dirtyRows = sheet.getDirtyRows();

gc.spread.sheets.all.11.2.2.min.js:30 Uncaught TypeError: Cannot read property 'hUa' of null







  //修改Submit提交
        $("#UpdateSubmit").click(function () {
            //修改
            var data = {};
            var changerow = false;
            var dirtyRows = sheet.getDirtyRows();
            var dirtyItems = [];
            for (var i = 0; i < dirtyRows.length; i++) {
                dirtyItems = dirtyRows.item;
            }
            if (dirtyItems.length > 0) {
                data.dirty = dirtyItems;
                changerow = true;
            }


            if (changerow) {
                bootbox.alert("The data is changed,please save it first.");
            }
            else {
                bootbox.confirm("Confirm this operation?", function (result) {
                    if (result) {
                        $.post("../api/NewHeadCount/SubmitData",
                                $('#AddSubmit').serialize(),
                        function (data) {
                            if (data.result == "OK") {
                                resetForm("#AddSubmit");
                                $("#Search").click();
                                $('#myModal3').modal('hide');
                            }
                            bootbox.alert(data.message);
                        }, "json");
                    }
                });
            }
        })

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-11-20 10:27:14
9#
您在fromJSON之后重新获取一下sheet对象,用新获得的这个sheet对象去调用getDirtyRows方法
回复 使用道具 举报
526有问题想问
注册会员   /  发表于:2019-7-11 17:21:47
10#
ClarkPan 发表于 2018-11-19 10:06
您好:

您在fromJSON中做如下设置试一下spread.fromJSON(workbookObj,{ frozenRowsAsColumnHeaders: tru ...

你好,我遇到了上面的问题,我最终想实现将带过滤条件的列标题的导入后在页面上也有过滤条件,并且显示在列标题的位置,而不是在数据的第一行。
1. 导出时toJSON({includeBindingSource:true,}),在Excel中显示是有过滤条件的,导入的时候fromJSON加不加frozenRowsAsColumnHeaders为true都在第一行,而不是在列标题那一行,
2. 导出时toJSON({includeBindingSource:true, rowHeadersAsFrozenColumns:true}),并且在fromJSON中添加frozenRowsAsColumnHeaders为true后列标题是显示正确了,但是过滤条件没有了,请问怎么解决?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部