Foxtable(狐表)用户栏目专家坐堂 → 导入数据及自动编号


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

主题:导入数据及自动编号

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


加好友 发短信
等级:幼狐 帖子:69 积分:799 威望:0 精华:0 注册:2017/8/2 12:34:00
导入数据及自动编号  发帖心情 Post By:2018/9/8 22:58:00 [只看该作者]

你好,我现在在做导入数据部分遇到个问题,希望各位大大能帮忙看下,谢谢!

我要实现得是选择文件导入数据,同时还能让设定的自动编码生效。
我把原先新增行后自动生成日期修改到了数据内容行变动时候则写入当天日期后,可以实现导入数据自动编码了。
如果固定路径功能都OK,但是改成选择文件就不行,请问要怎么处理。  下面是写的导入按钮的代码。

Dim dlg As New OpenFileDialog 
dlg.Filter= "EXCEL文件|*.xls" 
If dlg.ShowDialog = DialogResult.Ok Then 
MessageBox.Show("你要导入的表为:" & dlg.FileName,"提示") 
Dim Book As New XLS.Book("dlg.filename")
Dim Sheet As XLS.Sheet= Book.Sheets(0)       
Tables("表A").StopRedraw()
Dim nms() As String = {"序号","日期","内容"}
For n As Integer = 1 To Sheet.Rows.Count -1 
    Dim r As Row = Tables("表A").AddNew()
    For m As Integer = 0 To nms.Length - 1
         r(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables("表A").ResumeRedraw()       
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/9 15:44:00 [只看该作者]

请做一个实例发上来测试,项目和excel文件一起打包发上来。

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


加好友 发短信
等级:幼狐 帖子:69 积分:799 威望:0 精华:0 注册:2017/8/2 12:34:00
  发帖心情 Post By:2018/9/11 23:46:00 [只看该作者]

Hello,甜大。。麻烦帮
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:foxtable项目.rar

我看下。。谢谢!
有两个按钮。。。按钮2是固定路径导入  D:\KKKK.XLS
还有个问题就是如何导入一次后就不能再多次导入。避免有时候网络延迟多按几次相同文件导入一堆。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/12 9:35:00 [只看该作者]

参考

 

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "EXCEL文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你要导入为:" & dlg.FileName,"提示") '提示用户选择的文件
    Dim Book As New XLS.Book(dlg.filename)
    Dim Sheet As XLS.Sheet= Book.Sheets(0)
    Tables("表A").StopRedraw()
    '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"序号","日期","内容"}
    '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim dr As DataRow = DataTables("表A").find("内容='" & sheet(1,2).value & "'")
        If dr Is Nothing Then
            Dim r As Row = Tables("表A").AddNew()
            For m As Integer = 0 To nms.Length - 1
                r(nms(m)) = Sheet(n,m).Value
            Next
        End If
    Next
    Tables("表A").ResumeRedraw()
End If


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


加好友 发短信
等级:幼狐 帖子:69 积分:799 威望:0 精华:0 注册:2017/8/2 12:34:00
  发帖心情 Post By:2018/9/13 23:23:00 [只看该作者]

谢谢你。。甜大~~

 回到顶部