您好!
1、修改背景色的问题,您代码中出问题的代码截图如下:
按这个逻辑,实际上您是创建了一个新的sheet,然后把这个新的sheet的背景色改了。
要改变您自己的sheet,应该改为:
完整代码如下:
- //获取当前spread对象实例
- var spread = GC.Spread.Sheets.findControl("mainExcel");
- // 保存当前活动表的index
- var activeSheetIndex = spread.getActiveSheetIndex();
- // 设置活动表为第一张表
- spread.setActiveSheet(spread.getSheet(0).name());
- //将spread转换成json格式
- var testJson = JSON.stringify(spread.toJSON());
- //初始化一个新的spread(不需要进行页面渲染)
- var copyspread = new GC.Spread.Sheets.Workbook();
- //将转换成json格式的spreadjs导入到新的spread
- copyspread.fromJSON(JSON.parse(testJson));
- //删除所有单元格颜色,三角形符号
- var style = new GC.Spread.Sheets.Style();
- style.backColor = "white";
- var a = [];
- for (var i = 0; i < copyspread.getSheetCount(); i++) {
- if (sheetindexs.indexOf(i.toString()) == -1) {
- //获取要删除的sheet名称
- a.push(copyspread.sheets[i].name());
- }
- else {
- //将表单设置为不被保护
- copyspread.sheets[i].options.isProtected = false;
- var sheetname = copyspread.sheets[i].name();
- //copyspread.sheets[i].setDefaultStyle(style, GC.Spread.Sheets.SheetArea.viewport);
- for (var j = 0; j < copyspread.sheets[i].getRowCount(); j++) {
- //设置sheet里单元格默认背景色//这里修改背景色失败;
- for (var k = 0; k < copyspread.sheets[i].getColumnCount(); k++) {
- var sheetTmp = copyspread.sheets[i];
- sheetTmp.getCell(j, k).backColor("white");
- }
- }
- }
- }
- for (var i = 0; i < a.length; i++) {
- //查sheetname对应的索引
- var index = copyspread.getSheetIndex(a[i]);
- //删除不需要的sheet
- copyspread.removeSheet(index);
- }
- // 还原活动表
- spread.setActiveSheetIndex(activeSheetIndex);
- SPO.printSpindexs(copyspread, sheetindexs);
- $scope.addPrintline();
复制代码 |