以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]还是表格导入的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=30709)

--  作者:fengyungongzi
--  发布时间:2013/4/2 13:51:00
--  [求助]还是表格导入的问题
excel表格导入  发帖心情 Post By:2013-4-1 15:41:00 [只看该作者

     我用如下代码导入:
     Dim dlg As New OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx"
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)
    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 & "\'") Is 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



      运行后,提示有错误。每一次 只能添加一条记录。
图片点击可在新窗口打开查看此主题相关图片如下:dvfmnnbo)6s`ko5aq1@)x.jpg
图片点击可在新窗口打开查看
  有人告诉我,说是有的列为空 但我看了,没有啊,哪位能帮帮看看什么问题??
--  作者:Bin
--  发布时间:2013/4/2 14:06:00
--  
你这个明显就是列名有问题。发个例子 或者你自己SHow一下弹出一下每个列名 看弹出到哪一个的时候出错 就是哪个有问题
--  作者:fengyungongzi
--  发布时间:2013/4/2 14:43:00
--  
   怎么show啊,请指点!!
--  作者:Bin
--  发布时间:2013/4/2 14:48:00
--  
Dim dlg As New OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx"
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)
    Dim colNames As New List(Of String)
    For i As Integer = 0 To sheet.Cols.Count - 1
        colNames.Add(sheet(0, i).Text)
    Next
   MessageBox.Show(“这里上面的代码没问题”)
    Dim dt As DataTable = DataTables("机电设备表")
    For i As Integer = 1 To sheet.Rows.Count - 1
        If dt.Find("序号 = \'" & sheet(i, 0).Text & "\'") Is Nothing Then
            Dim ndr As DataRow = dt.AddNew
            For j As Integer = 0 To sheet.Cols.Count - 1
                MessageBox.Show(colNames(j))
             MessageBox.Show(sheet(i, j).Text)
                ndr(colNames(j)) = sheet(i, j).Text
            Next
        End If
    Next
End If
MessageBox.Show()
--  作者:狐狸爸爸
--  发布时间:2013/4/2 14:52:00
--  

楼主,同样的问题,不要重复发帖啊,如果长时间没有回复,顶上来就行。

你看你原来的帖子,我已经回了哦:

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=30649

 


--  作者:fengyungongzi
--  发布时间:2013/4/2 14:55:00
--  
  我加了你写的哪句话了,也出了一个提示:说是:这里上面的代码没有问题 ,但我还不指点错在哪??
--  作者:狐狸爸爸
--  发布时间:2013/4/2 15:11:00
--  

1、图片要上传,别人才能看得见

2、实在搞不定,就做个例子发上来,很快就知道原因了。