以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  合并数据能否再快些  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77186)

--  作者:sf020cf
--  发布时间:2015/11/12 14:57:00
--  合并数据能否再快些

代码如下:

Dim dlg As new OpenFileDialog
If dlg.ShowDialog = DialogResult.OK Then
    Dim App As New MSExcel.Application
    try
        Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
        Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("总计划表")
        Tables("订单").ResumeRedraw()
        Tables("订单").StopRedraw()
        Dim nms() As  String = {"项目","下单日期","MK号","DO号","城市","客户","送货地址","物料代码","数量","体积","重量","收货时间","是否采购订单"}
       
        For n As Integer = 2 To ws.UsedRange.Rows.Count -1
            Dim r As  Row = Tables("订单").AddNew()
            For  m As  Integer = 0 To nms.Length - 1
                If Tables("订单").Cols(nms(m)).IsDate Then
                    Dim d As Date
                    If Date.TryParse(ws.cells(n,m+1).Text, d)
                        r(nms(m)) = d
                    End If
                Else
                    r(nms(m)) = ws.cells(n,m+1).Text
                   
                End If
            Next
        Next
        Tables("订单").ResumeRedraw()
       
    catch ex As exception
        msgbox(ex.message)
        app.quit
    End try
End If

 

 

效率有点低 一千多条数据一分钟 我还不知道怎么加进度条,另外怎样才能动态选择表 不局限是"总计划",并且可以自动读出表的列名称, 用对话框选择哪一列等于"订单"的哪一列


--  作者:大红袍
--  发布时间:2015/11/12 15:06:00
--  

换成二位数组。

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=65686&skin=0

 


--  作者:sf020cf
--  发布时间:2015/11/12 15:42:00
--  

快了不少 进度条也弄出来了 接下来 怎样动态选择要合并的外部表 与用弹窗选择外部表的哪列合并到内部订单表的哪一列要怎么做  (因为多数外部订单都不是跟内部订单字段相同) 请给些参考或者指引


--  作者:大红袍
--  发布时间:2015/11/12 15:44:00
--  

先把表弄进来作为临时表,然后就是两个表合并的问题。

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52744&skin=0

 

 

下载信息  [文件大小:312.0 KB  下载次数:8]
图片点击可在新窗口打开查看点击浏览该文件:excel作为数据源_合并.table


--  作者:sf020cf
--  发布时间:2015/11/12 16:43:00
--  
创建外部连接"test"失败 
--  作者:大红袍
--  发布时间:2015/11/12 16:48:00
--  
不可能,看完整4楼。
--  作者:sf020cf
--  发布时间:2015/11/12 17:43:00
--  

我的是office 2010版的

 


--  作者:大红袍
--  发布时间:2015/11/12 17:55:00
--  

如果是xlsx的,这样写路径

 

Excel2007的数据源链接字符串为:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\\桌面\\Excel表.xlsx;Extended Properties=\'Excel 8.0;HDR=yes\'


--  作者:sf020cf
--  发布时间:2015/11/12 18:02:00
--  

有改 也测试连接了 打开窗口点合并 找到要合并的表----->打开-----外部链接"test"失败----->没有"test"数据源


--  作者:大红袍
--  发布时间:2015/11/12 18:07:00
--  
重新打开项目测试。