有些银行对账单下载后,表头字段不规范,如 金额(收入) 现/转,不符合FT字段要求,但是用高速导入没问题,再用代码(判断无重复代码导入,论坛上的)则显示 “XX”列不存在,无法导入,一般修改表结构和修改导入表表头可解决,但我觉得麻烦,请教有没有更简单的方法。(或者能否修改下面代码实现?)
判断无重复导入代码:
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
Dim Book As New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For i As Integer = 0 To Sheet.Cols.Count -1
If CurrentTable.Cols.Contains( Sheet(0,i).Value) = False Then
MessageBox.Show("目标文件不含【" & Sheet(0,i).Value & "】列,请修改与目标文件一致!", "导入错误提示")
Return
End If
Next
Dim Filter1 As String
For r As Integer = 1 To Sheet.Rows.Count - 1
Filter1 = ""
For c As Integer = 0 To Sheet.Cols.Count - 1
If c > 0 Then
Filter1 = Filter1 & " And "
End If
If CurrentTable.DataTable.DataCols(sheet(0,c).Value).Isnumeric Then
If sheet(r,c).Value = "" Then
Filter1 = Filter1 & sheet(0,c).Value & " is null"
Else
Filter1 = Filter1 & sheet(0,c).Value & " = " & sheet(r,c).Value
End If
Else
If sheet(r,c).Value = "" Then
Filter1 = Filter1 & sheet(0,c).Value & " is null"
Else
Filter1 = Filter1 & sheet(0,c).Value & " = '" & sheet(r,c).Value & "'"
End If
End If
Next
If CurrentTable.DataTable.Find(Filter1) Is Nothing Then
Dim dr As Row = CurrentTable.AddNew()
For c As Integer = 0 To Sheet.Cols.Count - 1
dr(Sheet(0,c).Value) = Sheet(r,c).Value
Next
End If
Next