找回密码
 立即注册

QQ登录

只需一步,快速开始

duduodudu

注册会员

3

主题

11

帖子

42

积分

注册会员

积分
42
最新发帖
duduodudu
注册会员   /  发表于:2022-11-3 09:44  /   查看:1484  /  回复:7
1金币

希望可以通过配置的形式去做到。
在线编辑
image.png576210631.png
导出后


image.png938155212.png

设置条件格式
image.png955315856.png
渲染效果
image.png462793273.png

最佳答案

查看完整内容

请问您将此回复置顶的原因是什么呢?您是否还未解决此问题? 这边为您写了一个demo,来完成复制工作簿,原工作簿不变,新增的工作簿将checkbox变为0或1的demo 示例demo见附件:

7 个回复

倒序浏览
duduodudu
注册会员   /  发表于:2022-11-14 15:02:41
来自 5#
  1.    function changeCheckBox(row,col){
  2. <div>    var sheet =  spread.getActiveSheet();
  3.     var cellType = sheet.getCellType(row, col);
  4.     if(cellType instanceof GC.Spread.Sheets.CellTypes.CheckBox){
  5.         debugger
  6.         console.log('判断为checkBox',row,col);
  7.         var val = sheet.getValue(row,col);
  8.         let text = val ? '&#9745;' : '&#9744;'
  9.         console.log(text);
  10.         sheet.setValue(row,col,text);
  11.     }
  12. }</div>
复制代码


  1. <div>/**
  2.          * 导出功能
  3.          */
  4.         function spreadExport(){
  5.             var originJson = spread.toJSON();
  6.             changeCheckBox(0,0);
  7.             changeCheckBox(1,0);
  8.             changeCheckBox(0,1);
  9.             // 文件名
  10.             let fileName= 'demo.xlsx';
  11.             var json = JSON.stringify(spread.toJSON());
  12.             excelIo.save(json, function (blob) {
  13.                 saveAs(blob, fileName);
  14.                 spread.fromJSON(originJson);
  15.             }, function (e) {
  16.                 console.log(e);
  17.             });
  18.         }</div>
复制代码

回复 使用道具 举报
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-3 09:44:57
来自 6#

请问您将此回复置顶的原因是什么呢?您是否还未解决此问题?
这边为您写了一个demo,来完成复制工作簿,原工作簿不变,新增的工作簿将checkbox变为0或1的demo
image.png396265563.png

示例demo见附件:

checkbox变为0或1.html

2.35 KB, 下载次数: 60

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-3 17:38:21
2#
您的意思是 既然checkbox 无法导出到excel,是否可以将chexkBox设置未0或者1,然后增加条件规则,这样子导出后在excel也可以查看。
这里可以提供一个思路,重写导出excel方法,遍历所有的checkbox,然后获通过getValue取其值,设置true为1,false为0、
回复 使用道具 举报
duduodudu
注册会员   /  发表于:2022-11-5 10:48:42
3#
Ellia.Duan 发表于 2022-11-3 17:38
您的意思是 既然checkbox 无法导出到excel,是否可以将chexkBox设置未0或者1,然后增加条件规则,这样子导 ...

// 导出执行以下方法,直接设置TURE为 &#9745;,FLASE为&#9744;。但是会影响原来的的表格。有没有方法可以设置,但是不影响原来的表格呢?
function changeCheckBox(row,col){
            var sheet =  spread.getActiveSheet();
            var cellType = sheet.getCellType(row, col);
            if(cellType instanceof GC.Spread.Sheets.CellTypes.CheckBox){
                console.log('判断为checkBox',row,col);
                var val = sheet.getValue(row,col);
                let text = val ? '&#9745;' : '&#9744;'
                console.log(text);
                sheet.setValue(row,col,text);
            }
     }
image.png510136107.png



回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-7 09:28:38
4#
duduodudu 发表于 2022-11-5 10:48
// 导出执行以下方法,直接设置TURE为 &#9745;,FLASE为&#9744;。但是会影响原来的的表格。有没有方法可 ...

有的,您在导出Excel时,先复制此工作簿,然后在复制的工作簿上进行修改checkbox值,最后导出复制的工作簿。
回复 使用道具 举报
duduodudu
注册会员   /  发表于:2022-11-14 18:27:03
7#
Ellia.Duan 发表于 2022-11-3 09:44
请问您将此回复置顶的原因是什么呢?您是否还未解决此问题?
这边为您写了一个demo,来完成复制工作簿, ...

主要是不知道如何关闭问题 选择最佳答案后就会了。现在学会了
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-14 18:44:53
8#
好的,感谢您设置最佳答案,也欢迎有新问题发新帖询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部