找回密码
 立即注册

QQ登录

只需一步,快速开始

spreadjs初学者

初级会员

30

主题

112

帖子

264

积分

初级会员

积分
264
spreadjs初学者
初级会员   /  发表于:2022-9-23 08:58  /   查看:1812  /  回复:9
1金币
本帖最后由 Ellia.Duan 于 2022-10-25 12:10 编辑

专家,您好!

     有这样一个场景:对于一些单据表格,为了界面好看,有时候会把单元格边框线设置为“灰色”的实线,但是打印的时候这些线条也是灰色,感觉不是很清晰,所以希望打印的时候,这些线条变成“全黑”的效果。现在是想问问有什么简单的办法可以把任意一张表格中所有的线条统一变成“全黑”?

最佳答案

查看完整内容

没有这样的方法可以直接判断当前sheet的所有border并修改颜色,可以通过遍历单元格设置:

9 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-23 08:58:45
来自 8#
没有这样的方法可以直接判断当前sheet的所有border并修改颜色,可以通过遍历单元格设置:
  1. var rc = sheet.getRowCount();
  2. var cc= sheet.getColumnCount();
  3. sheet.suspendPaint();
  4. for(var r=0; r<rc; r++) {
  5.     for(var c=0; c<cc; c++) {
  6.         var border = new GC.Spread.Sheets.LineBorder("black",GC.Spread.Sheets.LineStyle.thin);
  7.         var borderTop = sheet.getCell(r,c).borderTop();
  8.         var borderBottom = sheet.getCell(r,c).borderBottom();
  9.         var borderLeft = sheet.getCell(r,c).borderLeft();
  10.         var borderRight = sheet.getCell(r,c).borderLeft();
  11.         if(borderTop || borderBottom || borderLeft || borderRight) {
  12.             sheet.getCell(r,c).borderTop(border).borderBottom(border).borderLeft(border).borderRight(border);
  13.         }
  14.         
  15.     }
  16. }
  17. sheet.resumePaint();
复制代码


回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-23 11:29:46
2#
您好,
可以修改下sheet的defaultStyle,将边框线修改为黑色,示例代码如下:
  1. var defaultStyle = sheet.getDefaultStyle()
  2. defaultStyle.borderLeft =new GC.Spread.Sheets.LineBorder("black",GC.Spread.Sheets.LineStyle.thin);
  3. defaultStyle.borderTop = new GC.Spread.Sheets.LineBorder("black",GC.Spread.Sheets.LineStyle.thin);
  4. defaultStyle.borderRight = new GC.Spread.Sheets.LineBorder("black",GC.Spread.Sheets.LineStyle.thin);
  5. defaultStyle.borderBottom =  new GC.Spread.Sheets.LineBorder("black",GC.Spread.Sheets.LineStyle.thin);
  6. sheet.setDefaultStyle(defaultStyle)
复制代码
image.png495241393.png
回复 使用道具 举报
spreadjs初学者
初级会员   /  发表于:2022-9-23 16:32:08
3#
专家,您好!
我先打开一个表格,然后执行您的代码,发现表格格式没有任何变化,比如 线条还是原来的样子。不知道问题在哪里?如果方便的话,能给做个例子吗?谢谢专家
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-23 17:46:26
4#
“我先打开一个表格”这里具体指的是什么操作呢?
如果是导入一个excel/ssjson文件,您可以在导入之后重新获取sheet,然后执行上述代码。
如果是初始化SJS时想显示黑色边框,可以参考附件demo。

demo-designer15.2.html

3.76 KB, 下载次数: 85

回复 使用道具 举报
spreadjs初学者
初级会员   /  发表于:2022-9-23 20:28:03
5#
可能是我没有把问题说清楚,如下图所示:
image.png678811950.png
我加载了一个表格,这个表格已经画了网格线(灰色的),打印的时候,为了打印出来的时候,这些线条会更加清晰,我希望用一个方法把这些 “灰色”的线条先变成完全的“黑色”,然后再打印,我是想问是否有一个方法可以把任意一张表格中所有的线条统一变成“全黑”?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-26 13:53:50
6#
从图片来看您是设置了不显示网格线,给单元格区域设置了边框。
参考以下代码修改区域边框颜色:
  1. var border = new GC.Spread.Sheets.LineBorder("black",GC.Spread.Sheets.LineStyle.thin);
  2. sheet.getRange(2,2,10,5, GC.Spread.Sheets.SheetArea.viewport).setBorder(border, { all:true });
复制代码
API链接:https://demo.grapecity.com.cn/sp ... ange.html#setBorder
image.png412066649.png
回复 使用道具 举报
spreadjs初学者
初级会员   /  发表于:2022-9-26 15:46:14
7#
针对具体某个区域去重新设置border的颜色这种情况我会做,其实我想问的是,比如我要加载任意一个excel文件,我可能事先不知道里面具体什么地方设置了boder,有没有一个全局的方法可以把任意加载的Excel文件的人为设置的border全部改为黑色
回复 使用道具 举报
spreadjs初学者
初级会员   /  发表于:2022-9-27 15:21:33
9#
谢谢,我先试一下
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-27 17:14:14
10#
您客气了,有问题欢迎继续交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部