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)
Tables("学生信息").StopRedraw()
For n As Integer = 1 To Sheet.Rows.Count -1
Dim bj As String = sheet(n,2).value.replace(" ","").replace(chr(9),"")
Dim bsm As String = sheet(n,1).value.replace(" ","").replace(chr(9),"")
Dim xm As String = sheet(n,4).value.replace(" ","").replace(chr(9),"")
Dim dh As String = sheet(n,5).value.replace(" ","").replace(chr(9),"")
Dim dr As DataRow = DataTables("学生信息").sqlFind("班级 = '" & bj & "'and 学校标识码 = '" & bsm & "'and 联系电话 = '" & dh & "' And 学生姓名 = '" & xm & "'")
For m As Integer = 0 To sheet.Cols.Count-1
If dr Is Nothing Then dr = DataTables("学生信息").AddNew()
If m <= 5 Then
dr(sheet(0,m).value.replace(" ","").replace(chr(9),"")) = Sheet(n,m).Value
dr.save()
Else
Dim id As String = dr("学生Id")
Dim dr2 As DataRow = DataTables("成绩").sqlFind("学生ID = '"& id & "' and 考试名称 = '" & sheet(n,6).value &"'")
If dr Is Nothing Then
dr2 = DataTables("成绩").AddNew()
End If
dr2("姓名") = dr("学生姓名")
dr2("单位名称") = dr("学校名称")
dr2("学校代码") = trim(dr("学校标识码")).Substring(7,4)
dr2("学生ID") = dr("学生ID")
dr2(sheet(0,m).value.replace(" ","").replace(chr(9),"")) = Sheet(n,m).Value
dr2.save()
End If
Next
Next
Tables("学生信息").ResumeRedraw()
End If
学校名称 |
学校标识码 |
年级 |
班级 |
学生姓名 |
联系电话 |
考试名称 |
语文_A |
语文_B |
数学_A |
数学_B |
内江市东兴区石子镇中心学校 |
3151000403 |
初中2015级 |
初中2015级4班 |
钟玲 |
|
16秋半期 |
52 |
23 |
25 |
56 |
老师我有一个结构大致如上的EXCL表,我想先根据班级,学校标识码,联系电话,姓名查找,如学生信息表中没有就新增并把前6列导入学生信息表,保存后取得_Identify生成的学生ID,再在成绩表中用学生ID和考试名称查找,如没找到新增并把相关信息和EXCl中第七列开始的信息导入。现在提示未将实列引入对象。请问如何改,实现这个如何更简单快捷,谢谢