以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]excel数据导入合并出错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=75368)

--  作者:qnsylxl
--  发布时间:2015/10/7 2:01:00
--  [求助]excel数据导入合并出错
初学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

--  作者:大红袍
--  发布时间: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
--  发布时间:2015/10/7 11:14:00
--  
非常感谢!加判断后不再有提示,但数据不能导出进去,excel表中有此列数据为空,
别foxtable帮助里的excel合并代码我试了老是提示“不能更新。数据库或对象为只读。”,我把excel表、foxtable管理项目只读都改过了还是有行,是什么原因?

--  作者:大红袍
--  发布时间:2015/10/7 12:36:00
--  

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

 

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


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

--  作者:大红袍
--  发布时间:2015/10/11 22:38:00
--  

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

 

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