以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何判断excel数据表不存在  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=7517)

--  作者:lkqing
--  发布时间:2010/7/3 17:15:00
--  如何判断excel数据表不存在

Dim g As String = "d:\\date\\"
Dim r As String = e.Form.Controls("TextBox1").Value
Dim rr As String = ".xls"
Dim mg As New Merger
mg.SourcePath = "" & g &  r & rr & ""
mg.Format = "excel"
mg.SourceTableName = "订单$"
mg.DataTableName = "订单"
mg.Merge()

用以上合并数据代码,只要excel数据表的名称输错,即跳出一长串的错误信息。请教,如何用代码判断excel数据表不存在。


--  作者:狐狸爸爸
--  发布时间:2010/7/3 17:21:00
--  
用Excel报表中的编程部分,可以加载Excel文件,并获得其中的表。
--  作者:lkqing
--  发布时间:2010/7/3 17:35:00
--  
每天有60-100个Excel文件的数据要合并进来,如果先加载再合并的话,影响效率。请教狐狸他爹,如果用代码判断excel数据表不存在有困难的话,能否将错误信息显示的简洁、友好一些。谢谢
--  作者:czy
--  发布时间:2010/7/3 21:29:00
--  

感觉楼主这样的代码很不严谨。

 

这样试试:

 

Dim g As String = "d:\\date\\"
Dim r As String = e.Form.Controls("TextBox1").Value
Dim rr As String = ".xls"
If FileSys.FileExists(g & r & rr)  Then \'如果文件已经存在
    Dim Book As New XLS.Book(g & r & rr)  \'打开模板
    Dim Sheet As XLS.Sheet
    For i as Integer = 0 to Book.Sheets.Count - 1 \'判断来源表是否存在
        if Book.Sheets(i).Name = r Then
            Dim mg As New Merger
            mg.SourcePath = "" & g &  r & rr & ""
            mg.Format = "excel"
            mg.SourceTableName = "订单$"
            mg.DataTableName = "订单"
            mg.Merge()
        End If
    Next
End If

[此贴子已经被作者于2010-7-4 0:20:49编辑过]

--  作者:lkqing
--  发布时间:2010/7/3 22:14:00
--  
谢谢czy版主的提醒,竞疏忽了可用 FileSys.FileExists 判断目录文件是否存在。

--  作者:cpayinyuan
--  发布时间:2010/7/4 8:20:00
--  
FileSys.FileExists 可以判断文件是否存在,顺便问一下,如何判断某个文件夹是否有文件?(例如:如何判断 “D:\\aa\\”  文件夹下是否存在文件?)
[此贴子已经被作者于2010-7-4 8:21:20编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/7/4 9:04:00
--  
看看GetFiles