以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何批量处理文件?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=66023)

--  作者:南望
--  发布时间:2015/3/27 16:32:00
--  如何批量处理文件?
下列代码只能实现一个文件的操作,如何实现选择某目录后对该目录下(包括子目录)所有EXCEL文件执行如下代码?

Dim file As String =  e.Form.Controls("TextBox1").value
Dim Book1 As New XLS.Book(file)
    Dim Sheet1 = Book1.Sheets(0)
    For i As Integer = 0 To Sheet1.Rows.Count-1
        For j As Integer = 0 To Sheet1.Cols.Count -1
            If dic.ContainsKey(Sheet1(i, j).Text) Then
                Output.Show(Sheet1(i, j).Text & vbcrlf & dic(Sheet1(i, j).Text))
                Sheet1(i, j).value = Sheet1(i, j).Text & vbcrlf & dic(Sheet1(i, j).Text)
                
            End If
        Next
    Next
    \'//保存
    Book1.Save(file)


--  作者:有点甜
--  发布时间:2015/3/27 16:51:00
--  

 参考下面例子,递归获取所有文件

 

下载信息  [文件大小:292.0 KB  下载次数:84]
图片点击可在新窗口打开查看点击浏览该文件:文件递归.table


--  作者:南望
--  发布时间:2015/3/30 14:17:00
--  

我看了,还是有些搞不懂,麻烦老师结合我的代码给个例子,小弟再学习一下


--  作者:有点甜
--  发布时间:2015/3/30 14:18:00
--  
 那请先上传例子。2楼已经很明显了啊。
--  作者:有点甜
--  发布时间:2015/3/30 14:22:00
--  

内部函数

 

Dim path As String = args(0)

For Each file As String In FileSys.GetFiles(path)
    Dim Book1 As New XLS.Book(file)
    Dim Sheet1 = Book1.Sheets(0)
    For i As Integer = 0 To Sheet1.Rows.Count-1
        For j As Integer = 0 To Sheet1.Cols.Count -1
            If dic.ContainsKey(Sheet1(i, j).Text) Then
                Output.Show(Sheet1(i, j).Text & vbcrlf & dic(Sheet1(i, j).Text))
                Sheet1(i, j).value = Sheet1(i, j).Text & vbcrlf & dic(Sheet1(i, j).Text)
               
            End If
        Next
    Next
    \'//保存
    Book1.Save(file)

Next

For Each p As String In FileSys.GetDirectories(path)
    Functions.Execute("递归", p)
Next

 

调用

 

Dim file As String =  e.Form.Controls("TextBox1").value

Functions.Execute("递归", file)