Foxtable(狐表)用户栏目专家坐堂 → 帮忙看看导入Excel的时候出问题


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

主题:帮忙看看导入Excel的时候出问题

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


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

 看了一下,你不能导入.csv格式的数据,你需要把数据转换成.xls格式的才能导入。

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


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

 改了一下,如下

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入excel.table


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


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

帮你分析一下。

 

'下面写表a的列名,要对应excel的A、B、C列

Dim nms() As String = {"第一列","第二列","第三列","第四列","第五列","第六列","第八列","第九列"}

 

--------------------------------------

 

'唯一值判断,意思是 第一列、第二列 标注这一行数据的唯一(为的是不导入重复数据)

cmd.commandtext = "Select distinct 第一列,第二列 from {表A}"

 

-------------------------------------

 

'也是为了判断唯一,不重复导入

Dim bh As String = "第一列 ='" & sheet(n,0).Text & "' and 第二列 = '" & sheet(n,1).Text & "'"

 


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


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

 可以,下面这一段代码,不导入C、D、F列数据,从第4行开始导入

 

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls|Excel文件|*.csv" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    e.Sender.Text = "导入中"
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    CurrentTable.StopRedraw()
    '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"第一列","第二列","","","第五列","","第八列","第九列"}
    Application.DoEvents
    Dim cmd As new sqlcommand
    cmd.commandtext = "Select distinct 第一列,第二列 from {表A}"
    Dim dt As DataTable =  cmd.ExecuteReader
    For n As Integer = 3 To Sheet.Rows.Count -1
        Dim bh As String = "第一列 ='" & sheet(n,0).Text & "' and 第二列 = '" & sheet(n,1).Text & "'"
        If dt.Find(bh) Is Nothing Then 
            Dim r As Row = Tables("表A").AddNew() 
            For m As Integer = 0 To nms.Length - 1
                If nms(m) > "" Then
                    r(nms(m)) = sheet(n,m).Value
                End If
            Next
        End If
    Next
    e.Sender.Text = "导入"   
    CurrentTable.DataTable.Save
    CurrentTable.ResumeRedraw() 
End If

 回到顶部