找回密码
 立即注册

QQ登录

只需一步,快速开始

Andy.C

注册会员

16

主题

62

帖子

186

积分

注册会员

积分
186
Andy.C
注册会员   /  发表于:2024-10-17 15:30  /   查看:284  /  回复:4
1金币
GCEXCEL.NET 4.2.6 做Range.Hyperlinks.Delete()操作时,如果单元格有边框会把边框也移除掉。

这个是什么原因,怎么能做到移除超链接不影响样式?

最佳答案

查看完整内容

我在excel测试了一下,目前gcexcel的行为跟excel是一样的,调用Range.Hyperlinks.Delete()就是会把当前单元格的所有样式清除,包括边框。 我尝试了另一种方法,你看看能行不,我代码是java,你转成c#代码就行: worksheet.getHyperlinks().add(worksheet.getRange("A1"), "www.baidu.com"); worksheet.getRange("A1").getBorders().get(BordersIndex.EdgeBottom).setLineStyle(BorderLineStyle.Thick); worksheet.getRange("A1 ...

4 个回复

倒序浏览
最佳答案
最佳答案
Lewis
初级会员   /  发表于:2024-10-17 15:30:31
来自 4#
本帖最后由 Lewis 于 2024-10-18 11:57 编辑

我在excel测试了一下,目前gcexcel的行为跟excel是一样的,调用Range.Hyperlinks.Delete()就是会把当前单元格的所有样式清除,包括边框。
我尝试了另一种方法,你看看能行不,我代码是java,你转成c#代码就行:
worksheet.getHyperlinks().add(worksheet.getRange("A1"), "www.baidu.com");
worksheet.getRange("A1").getBorders().get(BordersIndex.EdgeBottom).setLineStyle(BorderLineStyle.Thick);
worksheet.getRange("A1").getBorders().get(BordersIndex.EdgeBottom).setColor(Color.GetBlack());
//清除超链接
worksheet.getRange("A1").clearHyperlinks();
//重置字体下划线以及颜色
worksheet.getRange("A1").getFont().setUnderline(UnderlineType.None);
worksheet.getRange("A1").getFont().setColor(wb.getStyles().get("Normal").getFont().getColor());
回复 使用道具 举报
Lewis
初级会员   /  发表于:2024-10-17 15:51:07
2#
试一下IRange.ClearHyperlinks()能否满足需求
回复 使用道具 举报
Andy.C
注册会员   /  发表于:2024-10-17 15:58:06
3#
Lewis 发表于 2024-10-17 15:51
试一下IRange.ClearHyperlinks()能否满足需求

ClearHyperlinks()会有一个问题,如果再在这个单元格输入数据,数据会变成超链形式。就像只是清掉了link url  并没有彻底把超链删除掉
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-10-18 17:55:58
5#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部