找回密码
 立即注册

QQ登录

只需一步,快速开始

丫丫
金牌服务用户   /  发表于:2023-2-22 15:31  /   查看:1015  /  回复:9
本帖最后由 丫丫 于 2023-2-22 17:46 编辑

excel数据单元格部门内容有删除线,导入后想获取该单元格数据和删除线的样式,写入另外一个spread中,但是用 readSheet.getValue(row,col, GC.Spread.Sheets.SheetArea.viewport, GC.Spread.Sheets.ValueType.richText)获取的value ,重新在另一个spread setValue(row,col, GC.Spread.Sheets.ValueType.richText,GC.Spread.Sheets.SheetArea.viewport)没有出现删除线 demo.xlsx (8.54 KB, 下载次数: 74)
image.png835493469.png

9 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-22 15:57:20
沙发
本帖最后由 Richard.Ma 于 2023-2-22 15:59 编辑

我看到你上面的代码中已经通过getValue获取到富文本值了,但是setValue时并没有用。
你的代码,
spread setValue(row,col, GC.Spread.Sheets.ValueType.richText,GC.Spread.Sheets.SheetArea.viewport)

setValue第三个参数应该为富文本json
比如
  1. sheet.setValue(1, 1, {richText:[{style:{vertAlign: GC.Spread.Sheets.VertAlign.subscript},text:'SpreadJS'}]}, GC.Spread.Sheets.SheetArea.viewport);
复制代码


按照上面的逻辑,正在的代码应该是

  1. var richtext=readSheet.getValue(row,col, GC.Spread.Sheets.SheetArea.viewport, GC.Spread.Sheets.ValueType.richText)
复制代码
回复 使用道具 举报
丫丫
金牌服务用户   /  发表于:2023-2-22 16:10:48
板凳
Richard.Ma 发表于 2023-2-22 15:57
我看到你上面的代码中已经通过getValue获取到富文本值了,但是setValue时并没有用。
你的代码,
spread s ...

不好意思,问题描述里写错了,我写的是json,现在问题是我在excel里有一个单元格内容前几个字符添加了删除线(如第一个图),导入后getValue获取的richText里面没有删除线(第二个图)
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-22 16:55:22
地板
好的,正常情况下,textDecoration应该是2,表示删除线
https://demo.grapecity.com.cn/sp ... .TextDecorationType

我需要重现你的问题,第一个图中的下划线,是在xlsx文件中吗,可以把文件上传上来
回复 使用道具 举报
丫丫
金牌服务用户   /  发表于:2023-2-22 17:47:48
5#
Richard.Ma 发表于 2023-2-22 16:55
好的,正常情况下,textDecoration应该是2,表示删除线
https://demo.grapecity.com.cn/spreadjs/help/api ...

excel已上传,想把单元格的数据和删除线输出到另外一个表单
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-22 18:20:21
6#
本帖最后由 Richard.Ma 于 2023-2-23 10:07 编辑

你这个文件中,三个单元格都是在单元格样式中(非富文本)统一设置了删除线,
image.png430163878.png

三个单元格都去掉单元格样式中下划线后是这样的
image.png781020507.png

然后分开说
第一列单元格,整体设置了下划线textDecoration=2,又给富文本中的“fg”设置了textDecoration=0,所以最后呈现的效果就是前一段使用单元格默认样式设置有下划线(这个应该是WPS本身的行为逻辑,通过这种反向的方式实现了富文本中部分有下划线)


第二列是只在单元格样式中整体设置了下划线,去掉单元格样式中下划线后,就没有了


只有第三列是只设置部分文本的下划线,也能获取到,单元格样式没有做下划线设置
image.png928426818.png

image.png698117675.png
回复 使用道具 举报
丫丫
金牌服务用户   /  发表于:2023-2-23 08:57:05
7#
三个单元格的内容我都是操作这里设置的下划线,第三个单元格再加了个字体红色而已,请问可以用什么方法获取到所有的下划线(这里是部分字符有下划线)
image.png784253234.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-23 10:18:45
8#
嗯,修改了一下上面的回答,你可以再参考一下。判断下划线需要同时参考单元格样式中的textDecoration和富文本样式中的textDecoration

总结来说,富文本json数组中每个对象里,如果只有text,那么这个对象会应用单元格删除线设置textDecoration,如果这个对象本身有style,那么会应用style中的textDecoration

以你发的图片中的A1单元格为例,
image.png480376891.png



回复 使用道具 举报
丫丫
金牌服务用户   /  发表于:2023-2-23 10:42:17
9#
Richard.Ma 发表于 2023-2-23 10:18
嗯,修改了一下上面的回答,你可以再参考一下。判断下划线需要同时参考单元格样式中的textDecoration和富文 ...

好的,明白了,谢谢
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-23 12:31:30
10#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部