以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何判断需导入的excel工作表是否存在(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=14519)

--  作者:yyzlxc
--  发布时间:2011/11/22 14:34:00
--  [求助]如何判断需导入的excel工作表是否存在(已解决)
需导入excel工作簿的a表,在导入前,判断此表是否存在;存在的话,执行导入代码;如不存在,则给出提示,并终止代码运行。
实现此功能的按钮代码如何写,请各位老师帮助指教。谢谢!!
[此贴子已经被作者于2011-11-22 22:08:22编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/11/22 14:46:00
--  
Dim Book As New XLS.Book("c:\\reports\\test.xls")
For i As Integer = 0 To Book.Sheets.Count -1
    Messagebox.show(Book.Sheets(i).Name)
Next

--  作者:yyzlxc
--  发布时间:2011/11/22 14:55:00
--  
谢谢狐爸老师的指教,上述代码可以显示工作簿中的所有表名,如何来判断指定的a表是否存在,代码如何写,请狐爸老师再给予指教,谢谢!!
--  作者:yyzlxc
--  发布时间:2011/11/22 15:35:00
--  

以下代码,当a<>选定值时,会给予提示,但是当 a = 选定值时,合并代码没有运行,不知问题出在哪里,请各位老师指教,谢谢!!

 

Dim mydate As Date = Forms("余额导入").Controls("DateTimePicker1").Text
Dim ny As String = format( mydate,"yyyy-MM")
Dim Book As New XLS.Book("f:\\data\\账务\\银行余额.xls")
For i As Integer = 0 To Book.Sheets.Count -1
    Dim a As String = Book.Sheets(i).Name
    If a = "" & ny &"$" Then
        DataTables("余额导入").DeleteFor("[编号]"IsNot Nothing)
        Dim mg As New Merger
        mg.SourcePath = "f:\\data\\账务\\银行余额.xls"
        mg.Format = "excel" \'指定格式
        mg.SourceTableName = "" & ny &"$" \'指定要合并的表
        mg.DataTableName = "余额导入" \'指定接收数据的表
        mg.Merge() \'开始合并
        DataTables("余额导入").Save()
    End If
    Messagebox.show(Book.Sheets(a).Name)
Next
Messagebox.show("需导入的数据不存在!","提示")


--  作者:yyzlxc
--  发布时间:2011/11/22 19:45:00
--  

做一个案例,请各位老师指教,谢谢!!

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目177.rar


--  作者:mr725
--  发布时间:2011/11/22 20:53:00
--  

Dim mydate As Date = Forms("余额导入").Controls("DateTimePicker1").Text
Dim ny As String = format( mydate,"yyyy-MM")
Dim Book As New XLS.Book(ProjectPath & "银行余额.xls")
For i As Integer = 0 To Book.Sheets.Count -1
    Dim a As String = Book.Sheets(i).Name

    If a = ny  Then
        \'  DataTables("余额导入").DeleteFor("[编号] is not null")
        Dim mg As New Merger
        mg.SourcePath = ProjectPath & "银行余额.xls"
        mg.Format = "excel" \'指定格式
        mg.SourceTableName = "" & ny &"$" \'指定要合并的表
        mg.DataTableName = "余额导入" \'指定接收数据的表
        mg.Merge() \'开始合并
        DataTables("余额导入").Save()
        Exit For
    Else
        Messagebox.show("需导入的数据不存在!","提示")
    End If
Next


--  作者:yyzlxc
--  发布时间:2011/11/22 21:50:00
--  
谢谢mr725老师的指教,代码达到预期的效果,但是存在一点瑕疵,如果找不到指定表,要按多次提示框的确定键(取决于表的数量),能否做到只出现一次提示框,还请老师指教,谢谢!!
--  作者:yyzlxc
--  发布时间:2011/11/22 22:08:00
--  

加一个Return语句,终止运行,问题解决。在这里再次感谢mr725老师和狐爸老师。

 

Dim mydate As Date = Forms("余额导入").Controls("DateTimePicker1").Text
Dim ny As String = format( mydate,"yyyy-MM")
Dim Book As New XLS.Book(ProjectPath & "银行余额.xls")
For i As Integer = 0 To Book.Sheets.Count -1
    Dim a As String = Book.Sheets(i).Name
    If a = ny  Then
        \'  DataTables("余额导入").DeleteFor("[编号] is not null")
        Dim mg As New Merger
        mg.SourcePath = ProjectPath & "银行余额.xls"
        mg.Format = "excel" \'指定格式
        mg.SourceTableName = "" & ny &"$" \'指定要合并的表
        mg.DataTableName = "余额导入" \'指定接收数据的表
        mg.Merge() \'开始合并
        DataTables("余额导入").Save()
        Return
    End If
Next
Messagebox.show("需导入的数据不存在!","提示")