Foxtable(狐表)用户栏目专家坐堂 → 处理EXCEL


  共有8363人关注过本帖树形打印复制链接

主题:处理EXCEL

帅哥哟,离线,有人找我吗?
有点蓝
  91楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/2 17:00:00 [只看该作者]

这种方式创建的一样是属于主线程的表,不管是不是在异步里创建的

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  92楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10574 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/6/2 17:07:00 [只看该作者]

那应该怎样创建才好?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  93楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/2 17:34:00 [只看该作者]

使用临时表,比如全局变量

public dt as datatable

创建临时表
Dim dtb As New DataTableBuilder("临时表")
    dtb.AddDef("字段1", Gettype(String),500)
    dtb.AddDef("字段2", Gettype(String),500)
  dt =  dtb.Build(True)

 回到顶部
帅哥哟,离线,有人找我吗?
南望
  94楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:392 积分:3312 威望:0 精华:0 注册:2014/4/9 10:04:00
  发帖心情 Post By:2021/6/3 14:19:00 [只看该作者]

这个倒是个好办法。那创建临时表的代码放到哪里合适?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  95楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/3 14:26:00 [只看该作者]

反正是全局变量,随便在哪里创建都可以,使用前创建就可以。不过注意datatable本身也不是线程安全的,如果多个异步线程里都使用同一个datatable的话,可能也会有问题,这时需要调用同步函数处理。



 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  96楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10574 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/6/3 14:57:00 [只看该作者]

可以一涉及填加行的时候“'Dim dr As Row = Tables("临时表").AddNew”还是报错啊?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  97楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/3 14:58:00 [只看该作者]

这种代码本来就不能在异步里使用

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  98楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10574 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/6/3 15:10:00 [只看该作者]

那您的意思是把Dim dr As Row = Tables("临时表").AddNew这段代码放到同步函数里?怎么写?
[此贴子已经被作者于2021/6/3 15:10:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  99楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/3 15:18:00 [只看该作者]

看15楼

异步里调用同步
Functions.BeginSyncExecute("aaaa","传入某某参数")    

aaaa函数
dim b as string = args(0)
Dim dr As Row = Tables("临时表").AddNew
dr("xxx") = b

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  100楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10574 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/6/3 15:59:00 [只看该作者]

感谢老师的耐心回复,这个问题给您折腾不轻,再次脆谢!

按老师的方法做了测试,不用临时表也可以正常执行。只要满足把这个Dim dr As Row = Tables("临时表").AddNew放到同步函数执行就可以,但问题是这样的执行的效率很低,没有体现异步的优势。

我想换个思路:把EXCEL提出来的内容异步存入LIST集合,然后再把集合内容存入狐表中,这个思路可行吗?



 回到顶部
总数 108 1.. 上一页 2 3 4 5 6 7 8 9 10 11 下一页