v17获取不到原样式
通过getStyle获取不到上传的excel样式信息,比如背景色是灰色getStyle中没有backColor返回,只有在代码中设置一个颜色才能有backColor带过来
如图:(7,9)的原样式是背景色灰色
图一上边设置的颜色注释掉返回的tyle中没有backColor返回,
图二设置的颜色red返回的tyle中才有backColor,
您好!请教下您文件中灰色背景的设置方式,另外,SpreadJS中的样式渲染按照优先级顺序叠加处理,具体如下图所示:
您可以尝试通过如下代码获取单元格的背景色:
sheet.getActualStyle(row, col).backColor;
sheet.getCell(row, col).backColor;
参考官网产品文档了解详情:
https://demo.grapecity.com.cn/spreadjs/help/docs/faqs/cells/style/style-priority-level#%E9%97%AE%E9%A2%98spreadjs%E6%A0%B7%E5%BC%8F%E4%BC%98%E5%85%88%E7%BA%A7%E5%92%8C%E6%A0%B7%E5%BC%8F%E6%B1%A1%E6%9F%93
Wilson.Zhang 发表于 2024-12-19 12:13
您好!请教下您文件中灰色背景的设置方式,另外,SpreadJS中的样式渲染按照优先级顺序叠加处理,具体如下图 ...
用actualstyle的方法可以获取到单个单元格的背景色,但是区域的就获取不到了
这边的需求是仅所选择的单元格背景色高亮,其他的要恢复原来的背景色,支持连续选择,有没有更好的方案实现呢
目前方案是选择新的选区后使原来的选区恢复所记录的背景色但是选区可能会有多个背景色,是否有支持区域样式的替换方法
王五子 发表于 2024-12-19 14:04
用actualstyle的方法可以获取到单个单元格的背景色,但是区域的就获取不到了
这边的需求是仅所选择 ...
可以尝试下单元格状态,SpreadJS对单元格定义了八种状态,如下图所示:
按照您的需求,设置单元格状态为selected(即选中)时呈现某背景颜色,离开时便还原为原样,如下动图所示:
参考如下代码:
var style = newGC.Spread.Sheets.Style();
style.backColor = 'blue';
var range = new GC.Spread.Sheets.Range(-1, -1, -1, -1);
sheet.cellStates.add(range,GC.Spread.Sheets.CellStatesType.selected,style);
这样设置的背景颜色也可以通过getActualStyle()获取。
可以参考官网教程了解详情:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/cell-state/introduction/purejs
王五子 发表于 2024-12-19 14:04
用actualstyle的方法可以获取到单个单元格的背景色,但是区域的就获取不到了
这边的需求是仅所选择 ...
根据您的需求,您可以试试sheet.options.selectionBackColor = "red",设置选择区域的样式。 香香 发表于 2024-12-19 15:33
根据您的需求,您可以试试sheet.options.selectionBackColor = "red",设置选择区域的样式。
感谢感谢但是在v17没有生效哎,用楼上大大单元格状态的方式成功实现了,太感谢了,这一步很关键 5楼用户提供的方法在17版本也可以使用,如下动图所示,我在17.1.9版本测试可行:
两个方法的效果稍有区别,单元格状态样式对选中的所有单元格一视同仁,selectionBackColor的颜色对选中单元格区域的首单元格不设置,您酌情使用即可。
Wilson.Zhang 发表于 2024-12-19 16:31
5楼用户提供的方法在17版本也可以使用,如下动图所示,我在17.1.9版本测试可行:
哦哦是选区第一个背景色的原因所以单元格的话没看出来,两种方法都实现了,可太好了感谢两位大大,太棒拉 王五子 发表于 2024-12-19 16:51
哦哦是选区第一个背景色的原因所以单元格的话没看出来,两种方法都实现了,可太好了感谢两位大大,太棒拉
解决了就好,那就结帖了。如有新问题,欢迎发新帖沟通。
:mj72:
页:
[1]