以文本方式查看主题

-  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=47054)

--  作者:hrw68529
--  发布时间:2014/3/4 8:21:00
--  [求助]从Excel报表提取数据问题

Foxtable可以根据Excel模板批量生成Excel表格,反过来,我们也可以从Excel表格提取数据写入Foxtable。

问题是:如果这个文件夹中原来已入入几个文件,并提取了数据,后来不断放入文件,怎么做到,原来已提取的表,不再提取,只提取新加入文件的内容,

我做过用“文件监视器”来进行,但不行,为什么,请赐教!!!


--  作者:Bin
--  发布时间:2014/3/4 8:36:00
--  
关键是要查找重复行


--  作者:hrw68529
--  发布时间:2014/3/4 15:03:00
--  
看这样的代码对吗?
For Each file As String In filesys .GetFiles(ProjectPath & "Attachments\\提取数据")
    If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
        Dim Book As New XLS.Book(file)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        Dim bh As String = sheet(3,3).Text
        If DataTables("职数配备统计表").Find("单位名称 = \'" & bh & "\'") Is Nothing Then \'如果不存在同编号的订单
            Dim dr As DataRow = DataTables("职数配备统计表").AddNew
            dr("单位名称") = sheet(3,3).Text
            dr("领导职数_正处级_实配数") = sheet(4,6).text
            dr("领导职数_副处级_实配数") = sheet(4,11).text
            dr("领导职数_正科级_实配数") = sheet(11,6).text
            dr("领导职数_副科级_实配数") = sheet(11,11).text
            dr("非领导职数_正处级_实配数") = sheet(18,6).text
            dr("非领导职数_副处级_实配数") = sheet(18,11).text
            dr("非领导职数_正科级_实配数") = sheet(24,6).text
            dr("非领导职数_副科级_实配数") = sheet(24,11).text
            dr("领导职数_县处级超配原因及超配数_超机构规格提拔") = sheet(6,6).Text
            dr("领导职数_县处级超配原因及超配数_违规设置领导职务名称") = sheet(7,6).text
            dr("领导职数_县处级超配原因及超配数_违规党政分设") = sheet(8,6).text
            dr("领导职数_县处级超配原因及超配数_换届政策") = sheet(9,6).text
            dr("领导职数_县处级超配原因及超配数_其他原因") = sheet(10,6).text
            dr("领导职数_县处级超配原因及超配数_违规提高干部职级待遇") = sheet(6,10).text
            dr("领导职数_县处级超配原因及超配数_任职年龄层层递减") = sheet(7,10).text
            dr("领导职数_县处级超配原因及超配数_军转安置") = sheet(8,10).text
            dr("领导职数_县处级超配原因及超配数_机构改革") = sheet(9,10).text
            dr("领导职数_乡科级超配原因及超配数_超机构规格提拔") = sheet(13,6).Text
            dr("领导职数_乡科级超配原因及超配数_违规设置领导职务名称") = sheet(14,6).text
            dr("领导职数_乡科级超配原因及超配数_违规党政分设") = sheet(15,6).text
            dr("领导职数_乡科级超配原因及超配数_换届政策") = sheet(16,6).text
            dr("领导职数_乡科级超配原因及超配数_其他原因") = sheet(17,6).text
            dr("领导职数_乡科级超配原因及超配数_违规提高干部职级待遇") = sheet(13,10).text
            dr("领导职数_乡科级超配原因及超配数_任职年龄层层递减") = sheet(14,10).text
            dr("领导职数_乡科级超配原因及超配数_军转安置") = sheet(15,10).text
            dr("领导职数_乡科级超配原因及超配数_机构改革") = sheet(16,10).text
            dr("非领导职数_县处级超配原因及超配数_超机构规格提拔") = sheet(20,6).Text
            dr("非领导职数_县处级超配原因及超配数_任职年龄层层递减") = sheet(21,6).text
            dr("非领导职数_县处级超配原因及超配数_换届政策") = sheet(22,6).text
            dr("非领导职数_县处级超配原因及超配数_其他原因") = sheet(23,6).text
            dr("非领导职数_县处级超配原因及超配数_违规提高干部职级待遇") = sheet(20,10).text
            dr("非领导职数_县处级超配原因及超配数_军转安置") = sheet(21,10).text
            dr("非领导职数_县处级超配原因及超配数_机构改革") = sheet(22,10).text
            dr("非领导职数_乡科级超配原因及超配数_超机构规格提拔") = sheet(26,6).Text
            dr("非领导职数_乡科级超配原因及超配数_任职年龄层层递减") = sheet(27,6).text
            dr("非领导职数_乡科级超配原因及超配数_换届政策") = sheet(28,6).text
            dr("非领导职数_乡科级超配原因及超配数_其他原因") = sheet(29,6).text
            dr("非领导职数_乡科级超配原因及超配数_违规提高干部职级待遇") = sheet(26,10).text
            dr("非领导职数_乡科级超配原因及超配数_军转安置") = sheet(27,10).text
            dr("非领导职数_乡科级超配原因及超配数_机构改革") = sheet(28,10).text
            dr("编制文件名称") = sheet(30,3).text
        End If
    End If
Next

--  作者:Bin
--  发布时间:2014/3/4 15:04:00
--  
没问题,只是你这样写好累哦. 为什么不采取帮助循环遍历的方式.
--  作者:hrw68529
--  发布时间:2014/3/4 15:12:00
--  
反过来,如果导入数据后,在tables("职数配备统计表")中列“单位名称”更改后,怎么能自动的更改相对应的excel表中的“单位名称”?
--  作者:Bin
--  发布时间:2014/3/4 15:17:00
--  
为什么还要反过来更改它? 直接重新导出不就完了.
--  作者:hrw68529
--  发布时间:2014/3/4 15:35:00
--  
各单位上报来的单位名称和数据库的单位名称不一致,在软件表中更改了单位名称,再次提取的时候,会把它当成新表进行提取,我的想法是,如果 在软件表中更改完单位名称后,能自动更改excel表中的单位名称,这样,下次再提取的时候,就不重复提取了。
--  作者:hrw68529
--  发布时间:2014/3/4 15:36:00
--  
还有,上述代码,怎么用遍历的方法,能否给下代码,谢谢
--  作者:Bin
--  发布时间:2014/3/4 15:37:00
--  
帮助例子就是遍历,参考一下即可.
--  作者:hrw68529
--  发布时间:2014/3/4 15:39:00
--  
各单位上报表格式是这样的,不是标准表,请看:

图片点击可在新窗口打开查看此主题相关图片如下:截图01.png
图片点击可在新窗口打开查看