找回密码
 立即注册

QQ登录

只需一步,快速开始

刘大青

注册会员

6

主题

23

帖子

71

积分

注册会员

积分
71
刘大青
注册会员   /  发表于:2023-12-12 11:13  /   查看:3675  /  回复:17
1金币
本帖最后由 Clark.Pan 于 2023-12-19 10:16 编辑

导出页面内容+样式到excel,打开文件后出现文件格式已损坏 另外如何去除打开文件时的密码

var sheet = NB.getSheet;

var tables = sheet.tables;


// 获取表格的范围
var tableRange = sheet.tables.all()[0].range();

// 获取表格范围内的数据和样式
var tableData = sheet.getArray(tableRange.row, tableRange.col, tableRange.rowCount, tableRange.colCount);
var tableStyles = sheet.getActualStyle(tableRange.row, tableRange.col, GC.Spread.Sheets.SheetArea.viewport);

// 将数据和样式保存为 Excel 文件
var excelJson = {
    sheets: [
        {
            name: "Sheet1",
            data: tableData,
            styles: tableStyles
        }
    ]
};
var excelIO = new GC.Spread.Excel.IO();
    excelIO.save(excelJson, function (blob) {
   //saveAs(blob, fileName); //saveAs is from FileSaver.
             funDownload(blob,"test.xlsx")
}, function (e) {
   console.log(e);
}, {
   password: "password",
   xlsxStrictMode: false
});
                            var funDownload = function (content, filename) {
            var eleLink = document.createElement('a');
            eleLink.download = filename;
            eleLink.style.display = 'none';
            // 字符内容转变成blob地址
            var blob = new Blob([content]);
            eleLink.href = URL.createObjectURL(blob);
            // 触发点击
            document.body.appendChild(eleLink);
            eleLink.click();
            // 然后移除
            document.body.removeChild(eleLink);
        };
image.png782591552.png image.png208676757.png
打不开文件 另外需要去掉密码

17 个回复

正序浏览
刘大青
注册会员   /  发表于:2023-12-18 10:44:15
18#
您好已经使用的 16.2.2 新版本 使用的是自动合并   导出还是不能合并 麻烦看下
回复 使用道具 举报
刘大青
注册会员   /  发表于:2023-12-18 10:41:50
17#
您好已经使用的 16.2.2 新版本 导出还是不能合并 麻烦看下
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-14 09:06:50
16#
您好,我注意到您使用的版本是14.2.2,猜测是一个旧版本的Bug,建议您升级到新版本后再试试看是否还有此问题。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-13 18:51:53
15#
demo收到,我们验证下,有结果贴中回复您。
回复 使用道具 举报
刘大青
注册会员   /  发表于:2023-12-13 14:18:19
14#
Joestar.Xu 发表于 2023-12-12 17:38
您好,自动合并的单元格应该也是可以导出的,您这边提供一个可以复现该问题的Demo,我们这边复现后调研一下 ...

image.png216592406.png 导出效果

image.png500860900.png 运行效果


导出后没有合并

testdaochuindex.zip

4.85 KB, 下载次数: 377

demo

回复 使用道具 举报
刘大青
注册会员   /  发表于:2023-12-13 14:08:50
13#
Joestar.Xu 发表于 2023-12-12 17:38
您好,自动合并的单元格应该也是可以导出的,您这边提供一个可以复现该问题的Demo,我们这边复现后调研一下 ...

运行效果 image.png703888244.png 导出效果 image.png820175781.png


导出后没有合并列 麻烦看下

testdaochuindex.zip

4.85 KB, 下载次数: 339

demo

回复 使用道具 举报
刘大青
注册会员   /  发表于:2023-12-13 13:47:52
12#
Joestar.Xu 发表于 2023-12-12 17:38
您好,自动合并的单元格应该也是可以导出的,您这边提供一个可以复现该问题的Demo,我们这边复现后调研一下 ...

demo 导出后提示需要授权
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-12 17:38:49
11#
您好,自动合并的单元格应该也是可以导出的,您这边提供一个可以复现该问题的Demo,我们这边复现后调研一下。

image.png708994140.png
回复 使用道具 举报
刘大青
注册会员   /  发表于:2023-12-12 17:21:50
10#
Joestar.Xu 发表于 2023-12-12 17:00
您好,我这边试了一下没有重现您的问题:

我这边用的是 下面这种方式合并的 是不是不支持导出合并单元格呢
var table = _sheet.tables.findByName('tableRecords')
        var tableRange = table.dataRange()
        //获取数据区域的前两列
        var range = new GC.Spread.Sheets.Range(tableRange.row, tableRange.col, tableRange.rowCount, 14);

        //数据区域列方向上自动合并显示

        _sheet.autoMerge(range, GC.Spread.Sheets.AutoMerge.AutoMergeDirection.none);
        _sheet.autoMerge(range, GC.Spread.Sheets.AutoMerge.AutoMergeDirection.column, GC.Spread.Sheets.AutoMerge.AutoMergeMode.restricted);
        NB.getSpread.resumePaint();
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-12 17:00:26
9#
您好,我这边试了一下没有重现您的问题:


image.png22719420.png

我的测试Demo如下。

demo.zip

1.72 KB, 下载次数: 1

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部