以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  Foxtable读取Excel文件代码求助  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=150753)

--  作者:段虎成
--  发布时间:2020/6/6 16:53:00
--  Foxtable读取Excel文件代码求助
老师您好,我想把帮助中Foxtable直接读取电脑中固定路径的Excel文件改成读取手工选择的Excel文件,请老师帮我整合一段代码,谢谢!图片点击可在新窗口打开查看实例已上传。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关于读取excel数据代码.zip


--  作者:绿火柴
--  发布时间:2020/6/6 17:04:00
--  
2003,2007格式的EXCEL都可以用。
工作簿,通过窗口选择
要导入的工作表: "工作表名$"
生产的内部表:"XXX表"

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx" \'设置筛选器
\'导入EXCEL数据--------------------------
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
Dim mg As New Importer
mg.SourcePath = dlg.FileName
mg.SourceTableName = "工作表名$"
mg.NewTableName = "XXX表"
If right(dlg.filename,4)=".xls" Then
mg.Format = "Excel" \'入格式
Else
mg.Format = "Excel2007"
End If
mg.Import()
End If
\'导入EXCEL数据---------------------------

--  作者:段虎成
--  发布时间:2020/6/6 17:20:00
--  
老师您好,您这个是生产新的表么?我这个案例类似于合并,我系统里现存的有固定字段的表,需要把不同时间段的数据读取进去。
--  作者:有点蓝
--  发布时间:2020/6/6 17:21:00
--  
合并把Importer改为Merger


--  作者:段虎成
--  发布时间:2020/6/6 17:41:00
--  

如果希望出现一个打开文件对话框,合并用户指定的文件,可以参考下面的代码:

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg
.Filter"Access文件|*.mdb" \'设置筛选器
If 
dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim 
mg As New Merger
    
mg.SourcePath = dlg.FileName
    
mg.SourceTableName = "订单"
    
mg.DataTableName = "订单"
    
mg.Merge()
End If



老师这段代码,既然是合并指定的文件,那为什么还需要知道指定合并表的名称呢?需要合并的EXCEl表的名称必须在代码中固定化么?


--  作者:绿火柴
--  发布时间:2020/6/6 18:18:00
--  
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "excel文件|*.xls|excel2007|*.xlsx" \'设置筛选器
\'合并EXCEL数据--------------------------
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.SourceTableName = "Sheet1$"
    mg.DataTableName = "产品xxx"
    If right(dlg.filename,4)=".xls" Then
        mg.Format = "Excel" \'入格式
    Else
        mg.Format = "Excel2007"
    End If
    mg.Merge()
End If

--  作者:有点蓝
--  发布时间:2020/6/7 20:38:00
--  
回5楼,一个execl可能有多个sheet,不指定名称不知道合并哪一个
--  作者:段虎成
--  发布时间:2020/6/8 9:32:00
--  
好的明白了老师,谢谢!