delphi 替换EXCEL中的字符串后下划线消失

xieningai 2017-02-07 08:18:34
原来EXCEL单元格中文字是“性别男”,其中的“男”字带有下划线

用Raplace替换“男”为“女”之后,下划线被去掉了。

源码:

uses
ComObj;

var
ExcelApp: Variant;
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.WorkBooks.Open('C:\1.xls');
ExcelApp.WorkSheets[1].Activate;
ExcelApp.Cells[1, 1].Replace('男', '女');
end;
...全文
554 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieningai 2017-02-08
  • 打赏
  • 举报
回复
如果是是一个长字符串,要替换其中某个字符串并将这个字符串加下划线能实现吗?Characters(x, x)必须知道当前替换之前的字符串长度。能否有替换的属性
santiaodahan 2017-02-07
  • 打赏
  • 举报
回复
替换后添加上下划线: ExcelApp.Cells[1, 1].Characters(3, 1).Font.UnderLine := True; 我发现至少6年前有人问了一模一样的问题,是太执着还是发 帖 机抓到了这个帖子重发了一次?
santiaodahan 2017-02-07
  • 打赏
  • 举报
回复
引用 2 楼 lyhoo163 的回复:
[quote=引用 1 楼 santiaodahan 的回复:] 替换后添加上下划线: ExcelApp.Cells[1, 1].Characters(3, 1).Font.UnderLine := True; 我发现至少6年前有人问了一模一样的问题,是太执着还是发 帖 机抓到了这个帖子重发了一次?
是这样,设置该属性。不过,使用delphi的ExcelApp,速度太慢,建议你改用第三方控件。速度快。[/quote] 你测试过吗?用哪个第三方控件?关键不在于是不是第三方,而在于怎么实现的,第三方有的本质上也是调用COM接口,不会因为包装成一个控件就快。另外直接生成EXCEL格式文档的方式可能会快。楼主也没问效率问题。
lyhoo163 2017-02-07
  • 打赏
  • 举报
回复
引用 1 楼 santiaodahan 的回复:
替换后添加上下划线: ExcelApp.Cells[1, 1].Characters(3, 1).Font.UnderLine := True; 我发现至少6年前有人问了一模一样的问题,是太执着还是发 帖 机抓到了这个帖子重发了一次?
是这样,设置该属性。不过,使用delphi的ExcelApp,速度太慢,建议你改用第三方控件。速度快。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧