彩票走势图

纯前端表格控件SpreadJS使用教程 - 如何给多个单元格区域设置背景图

转帖|使用教程|编辑:龚雪|2021-07-21 10:26:28.177|阅读 253 次

概述:SpreadJS支持给工作簿添加背景图,本文主要为大家介绍如何进行这个设置。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

SpreadJS支持给工作簿添加背景图,也支持给某一个单元格设置背景图。

点击获取SpreadJS工具下载

有小伙伴有这样的需求:给一片单元格区域设置背景图,这该如何实现呢?

方案1:将这片单元格区域设置合并单元格,然后给这个合并单元格设置背景图。


sheet.getCell(0,0).backgroundImage("//gcdn.grapecity.com.cn/uc_server/avatar.php?uid=52354&size=middle")


方案二:通过自定义单元格实现。

创建自定义单元格类型:


function WaterMarkCellType() {
this.typeName = "WaterMarkCellType"
}
WaterMarkCellType.prototype = new GC.Spread.Sheets.CellTypes.Text();
WaterMarkCellType.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
//Paints a cell on the canvas.
var background = style.backgroundImage;
style.backgroundImage = undefined;
GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, arguments)
GC.Spread.Sheets.CellTypes.Text.prototype.paint.call(this, ctx, undefined, x, y, w+100, h+100, {backgroundImage:background}, options)
};


给单元格区域的左上角单元格设置此单元格类型,背景图片由此绘制。


var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var sheet = spread.getActiveSheet();
sheet.getCell(3, 3).cellType(new WaterMarkCellType()).backgroundImage('//www.grapecity.com.cn/images/metalsmith/home/logo_spjs.png')

sheet.setArray(2, 2, [[1,2,3,4,5,6,],[1,2,3,4,5,6,],[1,2,3,4,5,6,],[1,2,3,4,5,6,],[1,2,3,4,5,6,],[1,2,3,4,5,6,]])


解决滑动滚动条时,图片未完全绘制的问题。

原因:

由于Demo中是把单个单元格中的背景图进行了放大绘制,而当滚动条滚动到目标单元格下方时,目标单元格并未被绘制,此时就会出现问题。

解决办法是添加滚动条事件,在事件中注册setTimeout,将sheet重绘即可。setTimeout时间应控制在不影响视觉效果的情况下尽量长一些。


var setTimeoutId = null;
sheet.bind(GC.Spread.Sheets.Events.TopRowChanged, function (s, e) {
clearTimeout(setTimeoutId);
// 这里的间隔时间,在不影响视觉效果的情况下尽可能长一点
setTimeoutId = setTimeout(function(){
e.sheet.repaint();
}, 50);
});


最终效果如下图:

纯前端表格控件SpreadJS使用教程 - 如何给多个单元格区域设置背景图

SpreadJS | 下载试用

纯前端表格控件SpreadJS,兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,备受华为、苏宁易购、天弘基金等行业龙头企业的青睐,并被中国软件行业协会认定为“中国优秀软件产品”。SpreadJS 可为用户提供类 Excel 的功能,满足表格文档协同编辑、 数据填报、 类 Excel 报表设计等业务场景需求,极大的降低企业研发成本和项目交付风险。

本文转载自


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP