找回密码
 立即注册

QQ登录

只需一步,快速开始

Jes

注册会员

10

主题

36

帖子

136

积分

注册会员

积分
136
Jes
注册会员   /  发表于:2019-7-18 17:02  /   查看:5141  /  回复:17
当选中区域本身没有边线的时候 是可以添加的
但是如果选中区域本身有边线 那么 左边线 和 上边线在
细的 和 圆点形式下 没反应
粗 和 中 的 可以显示
这是正常的么

for (var i = 0; i < selectedRanges.length; i++) {

      row = selectedRanges[i].row
      col = selectedRanges[i].col
      rowCount = selectedRanges[i].rowCount
      colCount = selectedRanges[i].colCount

      var lineStyle = GC.Spread.Sheets.LineStyle.thin;
      var lineColor = 'black'
      var lineDir = dir;
      var option = {}

      if (dir == 'none') {
        lineDir = 'all'
        lineStyle = GC.Spread.Sheets.LineStyle.empty
      }
      option[lineDir] = true
      var lineBorder = new GC.Spread.Sheets.LineBorder(lineColor, lineStyle);
      var sheetArea = GC.Spread.Sheets.SheetArea.viewport
      sheet.getRange(row, col, rowCount, colCount).setBorder(lineBorder, option, sheetArea);

    }


大体就是这么写的 dir 代表边线区域 麻烦告知问题所在

17 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-7-18 17:44:28
沙发
您好,您帖子发错区域了,我帮您移动了,根据您的代码,我设置dir = left,并未重现问题。
image.png326263427.png
回复 使用道具 举报
Jes
注册会员   /  发表于:2019-7-18 17:50:41
板凳
dexteryao 发表于 2019-7-18 17:44
您好,您帖子发错区域了,我帮您移动了,根据您的代码,我设置dir = left,并未重现问题。

如果所选择区域 之前没有边线 是可以正常加上的
但是如果之前有边线 比如 其他颜色的边线
那么 右 下 都能替换成 黑色 但是 左 上 都 改不过来
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-18 17:51:45
地板
您好,您的代码逻辑没有问题,实际上不是边线区域不显示,而是边线区域与rowheader,colheader有重叠,

因此推荐您可以用中线或粗线来绘制边线区域,这样可以满足您的需求。
回复 使用道具 举报
Jes
注册会员   /  发表于:2019-7-18 18:04:15
5#
KevinChen 发表于 2019-7-18 17:51
您好,您的代码逻辑没有问题,实际上不是边线区域不显示,而是边线区域与rowheader,colheader有重叠,

...

我在内容区域 不贴近 行头 列头的地方 尝试 也不显示
回复 使用道具 举报
Jes
注册会员   /  发表于:2019-7-18 18:09:34
6#
dexteryao 发表于 2019-7-18 17:44
您好,您帖子发错区域了,我帮您移动了,根据您的代码,我设置dir = left,并未重现问题。

你尝试下 之前是 红色细线
替换成 黑色细线 看能行么
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-18 18:13:08
7#
您好,我这边测试功能正常,您可以在console中运行下列代码,看一下选中区域的效果:

  1. var spread = GC.Spread.Sheets.findControl("ss");
  2. var sheet = spread.getActiveSheet();

  3. sheet.bind(GC.Spread.Sheets.Events.SelectionChanged, function (sender, args) {

  4.     var sheet = args.sheet;
  5.     var selectedRanges = args.newSelections;

  6.     for (var i = 0; i < selectedRanges.length; i++) {

  7.       row = selectedRanges[i].row
  8.       col = selectedRanges[i].col
  9.       rowCount = selectedRanges[i].rowCount
  10.       colCount = selectedRanges[i].colCount

  11.       var lineStyle = GC.Spread.Sheets.LineStyle.thin;
  12.       var lineColor = 'black'
  13.       var lineDir = "all";
  14.       var option = {}

  15.         lineDir = 'all'
  16.         lineStyle = GC.Spread.Sheets.LineStyle.thin;
  17.         
  18.       option[lineDir] = true
  19.       var lineBorder = new GC.Spread.Sheets.LineBorder(lineColor, lineStyle);
  20.       var sheetArea = GC.Spread.Sheets.SheetArea.viewport
  21.       sheet.getRange(row, col, rowCount, colCount).setBorder(lineBorder, option, sheetArea);
  22.     }
  23. });
复制代码


如果解决不了问题,请您打包一个能重现问题,能运行的Demo,上传到帖子附件。
回复 使用道具 举报
Jes
注册会员   /  发表于:2019-7-18 20:34:00
8#
KevinChen 发表于 2019-7-18 18:13
您好,我这边测试功能正常,您可以在console中运行下列代码,看一下选中区域的效果:

已上传附件

border_demo.zip

554.44 KB, 阅读权限: 150, 下载次数: 6

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-19 11:01:53
9#
您好,这个问题已经重现,问题我会提交到问题系统中,后续进展会在本帖更新。
回复 使用道具 举报
Jes
注册会员   /  发表于:2019-7-19 16:09:03
10#
KevinChen 发表于 2019-7-19 11:01
您好,这个问题已经重现,问题我会提交到问题系统中,后续进展会在本帖更新。

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