找回密码
 立即注册

QQ登录

只需一步,快速开始

我想吃麻薯
初级会员   /  发表于:2024-7-10 18:04:51
21#
Joestar.Xu 发表于 2024-7-10 17:51
您好,我这边使用您提供的代码测试了一下,仍然无法复现出您的问题:



请问您这个按钮是每次都会重新打开这个文件然后执行代码吗,如果是的话能不能在同一个文件一直打开的状态下,重复执行那段代码?
回复 使用道具 举报
我想吃麻薯
初级会员   /  发表于:2024-7-10 18:09:43
22#
Joestar.Xu 发表于 2024-7-10 17:51
您好,我这边使用您提供的代码测试了一下,仍然无法复现出您的问题:

麻烦您直接复制我的这段代码,绑定到#button1上,一定在同一个文件一直打开的状态下,重复点击#button1
  1. function demo() {
  2.   let sheet = spread.getActiveSheet()
  3.   let targetTable = sheet.tables.findByName('Table_FS_CUR')
  4.   const tableRange = targetTable.range()
  5.   const sRow = tableRange.row
  6.   const sCol = tableRange.col
  7.   const columns = targetTable.toJSON().columns
  8.   const columnList = []
  9.   columns &&
  10.   columns.forEach((col: { id: number; name: string }, index: number) => {
  11.     const tableColumn = new GC.Spread.Sheets.Tables.TableColumn(
  12.       col.id,
  13.       col.name,
  14.       col.name,
  15.       sheet.getFormatter(sRow + 1, sCol + index, GC.Spread.Sheets.SheetArea.viewport),
  16.     )
  17.     columnList.push(tableColumn)
  18.   })
  19.   targetTable.bindColumns(columnList)
  20.   targetTable.allowAutoExpand(true)
  21.   targetTable.autoGenerateColumns(false)
  22.   const tableName = targetTable.name()
  23.   targetTable.bindingPath(`${tableName}Data`)
  24.   const newDataSource = {
  25.     [`${tableName}Data`]: [
  26.       { No: '123123', CompanyName: '1234234', Country: '2324', Currency: '123123', fs01: '11', fi01: '11'},
  27.       { No: '123123', CompanyName: '1234234', Country: '2324', Currency: '123123', fs01: '222', fi01: '22'},
  28.       { No: '123123', CompanyName: '1234234', Country: '2324', Currency: '123123', fs01: '333', fi01: '33'}
  29.     ]
  30.   }
  31.   const source = new GC.Spread.Sheets.Bindings.CellBindingSource(newDataSource)
  32.   sheet.setDataSource(source)

  33.   // const newDataSource2 = {
  34.   //   [`${tableName}Data`]: [
  35.   //     { No: null, CompanyName: null, Country: null, Currency: null, fs01: null, fi01: null},
  36.   //     {},
  37.   //     {},
  38.   //   ]
  39.   // }
  40.   // const source2 = new GC.Spread.Sheets.Bindings.CellBindingSource(newDataSource2)
  41.   // sheet.setDataSource(source2)

  42.   // const newDataSource3 = {
  43.   //   [`${tableName}Data`]: [
  44.   //     { No: '123123', CompanyName: '1234234', Country: '2324', Currency: '123123', fs01: '555', fi01: '55'},
  45.   //     { No: '123123', CompanyName: '1234234', Country: '2324', Currency: '123123', fs01: '6666', fi01: '66'}
  46.   //   ]
  47.   // }
  48.   // const source3 = new GC.Spread.Sheets.Bindings.CellBindingSource(newDataSource3)
  49.   // sheet.setDataSource(source3)
  50. }
复制代码
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-11 09:58:50
23#
您好,我这边按照您说的测试了一下:

动画 (1).gif33293761.png

按钮1用于导入对应的文件,按钮2为执行您提供的代码。

但仍然未能复现出您描述的问题。
回复 使用道具 举报
我想吃麻薯
初级会员   /  发表于:2024-7-11 10:04:21
24#
Joestar.Xu 发表于 2024-7-11 09:58
您好,我这边按照您说的测试了一下:

应该是绑定失败了,如果上方表格绑定成功的话是会有数据的 image.png272062377.png
回复 使用道具 举报
我想吃麻薯
初级会员   /  发表于:2024-7-11 10:05:54
25#
Joestar.Xu 发表于 2024-7-11 09:58
您好,我这边按照您说的测试了一下:

麻烦能把您的这个 demo 文件给我一下吗
回复 使用道具 举报
我想吃麻薯
初级会员   /  发表于:2024-7-11 10:15:53
26#
Joestar.Xu 发表于 2024-7-11 09:58
您好,我这边按照您说的测试了一下:

按钮 2 点击后应该是报错了,麻烦获取一下您的设计器实例,并赋值给一个全局变量spread
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-11 17:33:18
27#
您好,按钮 2 点击后查看控制台并没有报错,spread实例也没有问题。

image.png421734618.png

image.png672225646.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-11 17:33:36
28#
请参考附件。

temp.zip

47.39 KB, 下载次数: 506

回复 使用道具 举报
我想吃麻薯
初级会员   /  发表于:2024-7-11 17:48:33
29#

您好,麻烦把您附件中的 index.js文件的这行代码改一下,然后点击两次 button2,即可复现 image.png392911986.png
  1. let targetTable = sheet.tables.findByName('Table_FS_CUR');
复制代码

评分

参与人数 1金币 +500 收起 理由
Joestar.Xu + 500 感谢指正~

查看全部评分

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-12 09:26:37
30#
您好,感谢指正,我已经成功复现出了您的问题,看上去是由于第二次绑定时fieldName发生了变化,不太确定为什么会出现这样的问题,需要调研一下,后续有进展我会在本帖中回复您。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部