以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  找不到可安装的 ISAM怎么简单解决?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=192108)

--  作者:山中树人100
--  发布时间:2024/5/29 11:52:00
--  找不到可安装的 ISAM怎么简单解决?
运行以下代码,显示“找不到可安装的 ISAM“,怎么解决

Dim dlg As New OpenFileDialog
dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    MessageBox.Show("你选择的是:" & dlg.FileNames.Length & "个文件")
    If MessageBox.Show("是否合并?","请确认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then
        DataTables("测试").StopRedraw
        For Each fl As String In dlg.FileNames
            Dim mg As New Merger
            mg.SourcePath = fl
            mg.Format = "excel2007" \'指定格式
            mg.SourceTableName = "sheet1$" \'指定要合并的表
            mg.DataTableName = "测试" \'指定接收数据的表
            mg.Merge() \'开始合并
        Next
        MessageBox.Show("导入成功!","恭喜!")
        DataTables("测试").ResumeRedraw
    End If
End If

--  作者:山中树人100
--  发布时间:2024/5/29 11:53:00
--  
我用的window10,文件是格式为“xls”
--  作者:有点蓝
--  发布时间:2024/5/29 12:17:00
--  
if fl.EndsWith(".xls")
 mg.Format = "excel" \'指定格式
else
 mg.Format = "excel2007" \'指定格式
end if

--  作者:山中树人100
--  发布时间:2024/5/29 13:18:00
--  
格式已经重置过了,还是不行,有其他办法吗?用高速合并是可以的,但我有好多个文件,每个文件又有2个sheet,一个一个来太慢了
--  作者:有点蓝
--  发布时间:2024/5/29 13:33:00
--  
        For Each fl As String In dlg.FileNames
            Dim mg As New Merger
            mg.SourcePath = fl
if fl.EndsWith(".xls")
 mg.Format = "excel" \'指定格式
else
 mg.Format = "excel2007" \'指定格式
end if
            mg.SourceTableName = "sheet1$" \'指定要合并的表
            mg.DataTableName = "测试" \'指定接收数据的表
            mg.Merge() \'开始合并
        Next