Foxtable(狐表)用户栏目专家坐堂 → [求助]excel数据导入合并出错


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

主题:[求助]excel数据导入合并出错

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


加好友 发短信
等级:婴狐 帖子:4 积分:103 威望:0 精华:0 注册:2015/10/4 17:39:00
[求助]excel数据导入合并出错  发帖心情 Post By:2015/10/7 2:01:00 [只看该作者]

初学foxtable,在本站上看了很多贴子,参照了一段合并代码,但不成功,提示“列“”不属于表 人员信息表。“ 不知道是什么原因?恳请版主帮助。


Dim dlg As New OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.Ok Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Dim colNames As New List(Of String)
    For i As Integer = 0 To sheet.Cols.Count - 1
        colNames.Add(sheet(0, i).Text)
    Next
   
    Dim dt As DataTable = DataTables("人员信息表")
    For i As Integer = 1 To sheet.Rows.Count - 1
        If dt.Find("身份证号 = '" & sheet(i, 0).Text & "'") IsNot Nothing Then
            Dim ndr As DataRow = dt.AddNew
            For j As Integer = 0 To sheet.Cols.Count - 1
                ndr(colNames(j)) = sheet(i, j).Text
            Next
        End If
    Next
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/7 9:35:00 [只看该作者]

先判断列是否在里面

 

Dim dlg As New OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.Ok Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Dim colNames As New List(Of String)
    For i As Integer = 0 To sheet.Cols.Count - 1
        If sheet(0, i).Text > "" Then
            colNames.Add(sheet(0, i).Text)
        End If
    Next
   
    Dim dt As DataTable = DataTables("人员信息表")
    For i As Integer = 1 To sheet.Rows.Count - 1
        If dt.Find("身份证号 = '" & sheet(i, 0).Text & "'") IsNot Nothing Then
            Dim ndr As DataRow = dt.AddNew
            For j As Integer = 0 To sheet.Cols.Count - 1
                If dt.DataCols.Contains(ColNames(j)) Then
                    ndr(colNames(j)) = sheet(i, j).Text
                End If
            Next
        End If
    Next
End If


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


加好友 发短信
等级:婴狐 帖子:4 积分:103 威望:0 精华:0 注册:2015/10/4 17:39:00
  发帖心情 Post By:2015/10/7 11:14:00 [只看该作者]

非常感谢!加判断后不再有提示,但数据不能导出进去,excel表中有此列数据为空,
别foxtable帮助里的excel合并代码我试了老是提示“不能更新。数据库或对象为只读。”,我把excel表、foxtable管理项目只读都改过了还是有行,是什么原因?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/7 12:36:00 [只看该作者]

1、说明表里面没有你excel的列;

 

2、只读,说明项目所在的文件夹,没有写权限。


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


加好友 发短信
等级:婴狐 帖子:4 积分:103 威望:0 精华:0 注册:2015/10/4 17:39:00
  发帖心情 Post By:2015/10/11 20:48:00 [只看该作者]

运行过程中有出错,“索引超出范围。必须为非负值并小于集合大小。参数名:index”
这是什么原因,代码应该是没有问题呀,我一个表可以导入没有问题,别一个表导入时导入第一条数据后就出现这样的问题,

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/11 22:38:00 [只看该作者]

和其他代码冲突了,阻止其他事件触发看看

 

http://www.foxtable.com/help/topics/2218.htm

 


 回到顶部