Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
Dim cmd As New SQLCommand
Dim dt As Date
cmd.C
cmd.CommandText = "Select GetDate()"
dt = cmd.ExecuteScalar()
Dim c As Integer = 0
Dim Book As New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("物料信息").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"项目编号","模具编号","物料编号","物料名称","图档尺寸","材料","数量","精毛料","重量","采购规格","备注"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
'======================================先判断是否存在空白的物料编号
For m As Integer = 1 To Sheet.Rows.Count -1
If sheet(m,3).Text > "" Then
MessageBox.Show("存在物料编号为空白的行,请重新检查后再导入")
Return
End If
Next
'=========================================先判断是否存在空白的物料编号
For n As Integer = 1 To Sheet.Rows.Count -1
Dim bh As String = sheet(n,2).Text
If sheet(n,4).Text <> "" Then
If DataTables("物料信息").Find("物料编号 = '" & bh & "'") Is Nothing Then '如果不存在同编号的订单
c = c + 1
Dim r As Row = Tables("物料信息").AddNew()
For m As Integer = 0 To nms.Length - 1
r(nms(m)) = Sheet(n,m).Value
Next
r("制单人") = User.Name
r("制单日期") = dt
此主题相关图片如下:snipaste_2021-07-15_09-17-53.png

End If
Else
MessageBox.Show("存在物料编号为空白的行,请重新检查后再导入")
Exit For
End If
Next
Tables("物料信息").ResumeRedraw()
DataTables("物料信息").Save
MessageBox.Show("导入完成,共导入" & c & "条记录")
End If