找回密码
 立即注册

QQ登录

只需一步,快速开始

eyAndrew

金牌服务用户

75

主题

343

帖子

980

积分

金牌服务用户

积分
980
eyAndrew
金牌服务用户   /  发表于:2024-10-31 16:23  /   查看:511  /  回复:24
image.png643372802.png

如图,我首先设置n行n列, 行高 列宽 有的设置为 * (自动撑开),有的设置10 20 32等固定值。
然后使用浮动对象,开始行 结束行 开始列 结束列。

有的浮动对象的实际位置会有偏差(超出一行 或一列 这个行列一般都是固定值),最后计算的高度也会有问题。

1. 这个列宽 行高有最小值么?是不是这个导致的偏差
2. 当浮动元素,同时存在 startRow enRow startColumn endColumn  width height哪个优先级更高?


24 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-11-4 11:37:03
来自 21#
您好,这边调研了一下,请参考以下代码:

  1. document.querySelector("#button1").addEventListener("click", function () {
  2.   // let spread = designer.getWorkbook();
  3.   // spreadExport(spread);
  4.   spread = designer.getWorkbook();
  5.   sheet = spread.getActiveSheet();

  6.   var customFloatingObject =
  7.     new GC.Spread.Sheets.FloatingObjects.FloatingObject("f1", 10, 10, 60, 64);
  8.   var btn = document.createElement("button");
  9.   btn.style.width = "10px";
  10.   btn.style.height = "10px";
  11.   btn.innerText = "button";

  12.   customFloatingObject.content(btn);
  13.   customFloatingObject.startRow(2);
  14.   customFloatingObject.startColumn(2);
  15.   customFloatingObject.endRow(3);
  16.   customFloatingObject.endColumn(3);
  17.   sheet.floatingObjects.add(customFloatingObject);
  18. });

  19. document.querySelector("#button2").addEventListener("click", function () {
  20.   // excelSave(spread, () => {});
  21.   sheet = spread.getActiveSheet();

  22.   let customFloatingObject = sheet.floatingObjects.all()[0];

  23.   customFloatingObject.startRow(2);
  24.   customFloatingObject.startColumn(2);
  25.   customFloatingObject.endRow(3);
  26.   customFloatingObject.endColumn(3);

  27.   customFloatingObject.startRowOffset(0);
  28.   customFloatingObject.startColumnOffset(0);
  29.   customFloatingObject.endRowOffset(0);
  30.   customFloatingObject.endColumnOffset(0);
  31. });
复制代码


第一个按钮用于创建floatingObject,然后移动该floatingObject到其他的位置后,再点击第二个按钮,此时floatingObject会回到原始的位置,看能否满足您的需求。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-10-31 16:45:36
沙发
可以用这个sjs测试,开始行结束行 实际展示的位置会有偏差(偏差的位置 正好是最左侧的固定列宽的)

testrow.sjs

12.59 KB, 下载次数: 27

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-10-31 17:44:11
板凳
您好,我这边导入到官网的Demo中后未能复现出您的问题:

image.png648720397.png

看上去没有出现偏差,能否请您提供一个可以复现的Demo,这边本地复现后调研一下。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-10-31 17:49:51
地板
Joestar.Xu 发表于 2024-10-31 17:44
您好,我这边导入到官网的Demo中后未能复现出您的问题:

这不是有偏差么? 我设置开始列2 结束列3,你看这个浮动元素不是多出一点么? 正常不应该C列结束掉么?
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-10-31 17:50:44
5#
image.png831958617.png
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-10-31 17:52:24
6#
不好意思,是开始列  结束列,我单元格上 写错了
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-10-31 17:56:13
7#
了解了,也就是说类似于这样的一个浮动对象是吗?

image.png325931090.png

我在17.1.7中也未能复现出来:

image.png525846557.png

您的浮动元素是如何定义的?
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-10-31 18:19:25
8#
Joestar.Xu 发表于 2024-10-31 17:56
了解了,也就是说类似于这样的一个浮动对象是吗?

浮动元素是这么定义的,没问题, 但是前置条件先设置了 列宽 行高(有固定值 有*),你用我那个sheet,插入浮动元素试试, 开始列2 结束列3,开始行2 结束行3。 就能复现,多出的部分,应该就是第一列的宽度。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-10-31 18:21:07
9#
我测试版本 17.1.3
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-11-1 11:42:51
10#
我本地稳定复现的,可以么?
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部