Foxtable(狐表)用户栏目专家坐堂 → [求助]如何快速的导入一个表格到软件中


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

主题:[求助]如何快速的导入一个表格到软件中

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
[求助]如何快速的导入一个表格到软件中  发帖心情 Post By:2024/9/30 10:31:00 [只看该作者]

如我有一个excel表,我想快速的将其导入软件中的表A中,能否用 下面的方案导入表A 呢?


Dim
ip as New Importer
ip
.SourcePath = "c:\Data\销售管理.xls" '指定数据文件
ip
.SourceTableName = "订单" '指定要导入的表
ip
.NewTableName ="订单" '导入后的表名
ip.Format = "Excel"
'指定导入格式

ip
.Import()

我看我们的说明,
Merger用于合并数据。
合并的速度要远低于导入,所以如果有大量数据要引入管理项目中,最好用导入。

这个效率比较低,我想用 improter 的话,该如何操作?





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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/30 10:53:00 [只看该作者]

improter 只能导入为新表。无法合并数据。

或者试试导入新表,fill到表A,再删除新表。不过我觉得这个可能会更慢

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
回复:(有点蓝)improter 只能导入为新表。无法...  发帖心情 Post By:2024/9/30 12:31:00 [只看该作者]

咱们软件中的这个合并也挺快,能分享下这个的思路的或者 代码?

我想自己写一下,更灵活一些

如下拉
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240930122820.png
图片点击可在新窗口打开查看
sheet 表后,下面的表就显示出来了,查看下,没有问题,就正常合并的软件中的表中

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
回复:(moseser)回复:(有点蓝)improter 只能...  发帖心情 Post By:2024/9/30 12:34:00 [只看该作者]

我如下写了下 代码,可是 ,选择 excel 表后,就比较卡,要等上十来秒,才能下拉

foxtable 自带的合并,反应很快,请问是如何做到的?

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog 
dlg.Filter = "Excel文件|*.xls|Word文件|*.doc|Access文件|*.mdb" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    '  MessageBox.Show("你选择的是:" & dlg.FileName, "提示") '提示用户选择的文件
    Dim txt As WinForm.Label = e.Form.Controls("Label1")
    txt.Text = dlg.FileName
    '获取 worksheets   
    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(txt.Text)
    Dim Lst As New List(Of String)
    For Each Ws As MSExcel.WorkSheet In Wb.WorkSheets
        'MessageBox.Show(Ws.Name)
        Lst.Add(Ws.Name)
    Next
    '将表sheet表集合转成string 
    
    Dim Arys() As String
    Arys = Lst.ToArray() '将集合转换为数组
    
    Dim Str1 As String
    Str1 = String.Join("|", Arys)

    Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
    cmb.ComboList = Str1
    App.Quit

End If

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
回复:(moseser)回复:(moseser)回复:(有点蓝)...  发帖心情 Post By:2024/9/30 12:40:00 [只看该作者]

    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(txt.Text)


到这里,测试了下,耗时就4.8秒

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/30 13:33:00 [只看该作者]

菜单的高速合并其实就是Merger。

如果数据比较多,试试这种方式:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100317&replyID=&skin=1

 回到顶部