Foxtable(狐表)用户栏目专家坐堂 → 自动实现查找目录是否存在 不存在就创建 目录下有指定文件就自动导入 代码怎么修正呢?实现实现往指定目录里丢文件,代码自动导入并进行匹配字段值!


  共有1963人关注过本帖树形打印复制链接

主题:自动实现查找目录是否存在 不存在就创建 目录下有指定文件就自动导入 代码怎么修正呢?实现实现往指定目录里丢文件,代码自动导入并进行匹配字段值!

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 9:44:00 [显示全部帖子]

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
   
    If FileSys.DirectoryExists("d:\MyFolder") Then '如果目录C:\MyFolder存在
        MessageBox.Show("我存在哦")
    Else
        FileSys.CreateDirectory("d:\MyFolder")  '创建目录
        MessageBox.Show("我新建成功了")
    End If
   
    Dim ip As New Importer
    ip.SourcePath = dlg.FileName
    ip.SourceTableName = "案件基本信息$" '指定要导入的表
    ip.NewTableName ="案件基本信息" '导入后的表名
    ip.Format = "Excel" '指定导入格式
    ip.Import()
   
    Dim t As Table = Tables("案件基本信息")
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
   
    Dim c As Integer
    For i As Integer = 0 To sheet.Cols.Count -1
        If sheet(0,i).text = "部门受案号" Then
            c = i
            Exit For
        End If
    Next
    'msgbox("案号列=" & c)
   
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As DataRow = t.DataTable.Find("部门受案号 = '" & sheet(n,c).text.trim() & "'")
        Dim Isnew As Boolean
        If r Is Nothing Then
            r = t.DataTable.AddNew()
            Isnew  = True
        End If
        For i As Integer = 0 To sheet.Cols.Count -1
            Dim cname As String = sheet(0, i).text
            If t.Cols.Contains(cname) Then
                If Isnew = False AndAlso cname = "是否关联" Then Continue For
                r(cname) = sheet(n, i).Text
            ElseIf cname = "移诉意见" Then
                r("移送意见") = sheet(n, i).Text
            ElseIf cname = "移诉案由" Then
                r("移送案由") = sheet(n, i).Text
                r("涉嫌案由") = sheet(n, i).Text
            ElseIf cname = "审结情况" Then
                r("审结处理结果") = sheet(n, i).Text
            ElseIf cname = "办结日期" Then
                r("审结日期") = sheet(n, i).Text
            End If
        Next
    Next
    t.ResumeRedraw()
End If

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 12:33:00 [显示全部帖子]

If FileSys.DirectoryExists("d:\MyFolder") Then '如果目录C:\MyFolder存在
    MessageBox.Show("我存在哦")
    For Each file As String In FileSys.GetFiles("d:\MyFolder\")
        If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
           
           
            Dim t As Table = Tables("案件基本信息")
            t.StopRedraw()
            Dim Book As New XLS.Book(file)
            Dim Sheet As XLS.Sheet = Book.Sheets(0)
           
            Dim c As Integer
            For i As Integer = 0 To sheet.Cols.Count -1
                If sheet(0,i).text = "部门受案号" Then
                    c = i
                    Exit For
                End If
            Next
            'msgbox("案号列=" & c)
           
            For n As Integer = 1 To Sheet.Rows.Count -1
                Dim r As DataRow = t.DataTable.Find("部门受案号 = '" & sheet(n,c).text.trim() & "'")
                Dim Isnew As Boolean
                If r Is Nothing Then
                    r = t.DataTable.AddNew()
                    Isnew  = True
                End If
                For i As Integer = 0 To sheet.Cols.Count -1
                    Dim cname As String = sheet(0, i).text
                    If t.Cols.Contains(cname) Then
                        If Isnew = False AndAlso cname = "是否关联" Then Continue For
                        r(cname) = sheet(n, i).Text
                    ElseIf cname = "移诉意见" Then
                        r("移送意见") = sheet(n, i).Text
                    ElseIf cname = "移诉案由" Then
                        r("移送案由") = sheet(n, i).Text
                        r("涉嫌案由") = sheet(n, i).Text
                    ElseIf cname = "审结情况" Then
                        r("审结处理结果") = sheet(n, i).Text
                    ElseIf cname = "办结日期" Then
                        r("审结日期") = sheet(n, i).Text
                    End If
                Next
            Next
            t.ResumeRedraw()
        End If
    Next   
Else
    FileSys.CreateDirectory("d:\MyFolder")  '创建目录
    MessageBox.Show("我新建成功了")
End If
[此贴子已经被作者于2019/3/20 12:52:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 12:52:00 [显示全部帖子]

output.Show(file)       

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 12:53:00 [显示全部帖子]

If FileSys.DirectoryExists("d:\MyFolder") Then '如果目录C:\MyFolder存在
    MessageBox.Show("我存在哦")
    For Each file As String In FileSys.GetFiles("d:\MyFolder\")

msgbox(file)
        If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
           
           
            Dim t As Table = Tables("案件基本信息")
            t.StopRedraw()
            Dim Book As New XLS.Book(file)
            Dim Sheet As XLS.Sheet = Book.Sheets(0)
           
            Dim c As Integer
            For i As Integer = 0 To sheet.Cols.Count -1
                If sheet(0,i).text = "部门受案号" Then
                    c = i
                    Exit For
                End If
            Next
            'msgbox("案号列=" & c)
           
            For n As Integer = 1 To Sheet.Rows.Count -1
                Dim r As DataRow = t.DataTable.Find("部门受案号 = '" & sheet(n,c).text.trim() & "'")
                Dim Isnew As Boolean
                If r Is Nothing Then
                    r = t.DataTable.AddNew()
                    Isnew  = True
                End If
                For i As Integer = 0 To sheet.Cols.Count -1
                    Dim cname As String = sheet(0, i).text
                    If t.Cols.Contains(cname) Then
                        If Isnew = False AndAlso cname = "是否关联" Then Continue For
                        r(cname) = sheet(n, i).Text
                    ElseIf cname = "移诉意见" Then
                        r("移送意见") = sheet(n, i).Text
                    ElseIf cname = "移诉案由" Then
                        r("移送案由") = sheet(n, i).Text
                        r("涉嫌案由") = sheet(n, i).Text
                    ElseIf cname = "审结情况" Then
                        r("审结处理结果") = sheet(n, i).Text
                    ElseIf cname = "办结日期" Then
                        r("审结日期") = sheet(n, i).Text
                    End If
                Next
            Next
            t.ResumeRedraw()
        End If
    Next   
Else
    FileSys.CreateDirectory("d:\MyFolder")  '创建目录
    MessageBox.Show("我新建成功了")
End If


 回到顶部