以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]导入改善 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124576) |
-- 作者:blsu33 -- 发布时间:2018/9/9 20:05:00 -- [求助]导入改善 老师, 下面代码中有逻辑列和数值列会错误,怎么改善下呢?
Dim e =args(0) Dim xlsin As String=args(1) Dim dlg As New OpenFileDialog dlg.Filter = "Excel文件|*.xls;*.xlsx" Dim drhf As String="" If dlg.ShowDialog =DialogResult.OK Then Dim Book As New XLS.Book(dlg.FileName) For Each sheet As xls.sheet In book.sheets Dim hs As Integer=0 Dim hs2 As Integer=0 If xlsin=sheet.name Then Dim t As Table = Tables(sheet.name) t.ResumeRedraw() t.StopRedraw() For n As Integer =3 To Sheet.Rows.Count -1 Dim cnames As String="1=1" For i As Integer = 0 To sheet.Cols.Count -1 \'If sheet(2, i).text<>"摘要" Then cnames &= " and " & sheet(2, i).text.replace("/", "") & "=" & "\'" & Sheet(n,i).text & "\'" \'End If Next MessageBox.Show(cnames) Dim drs As DataRow=DataTables(sheet.name).Find(cnames) If drs Is Nothing Then hs=hs+1 Dim r As DataRow= t.DataTable.AddNew() For i As Integer = 0 To sheet.Cols.Count -1 Dim cname As String = sheet(2, i).text.replace("/", "") If cname > "" AndAlso t.Cols.Contains(cname) Then r(cname)= sheet(n, i).Text End If Next Else hs2=hs2+1 End If Next t.ResumeRedraw() End If drhf &="模块【" & sheet.name & "】本次共导入成功: " & hs & " 行;" & vbcrlf drhf &="模块【" & sheet.name & "】本次共导入失败: " & hs2 & " 行;" & vbcrlf Next End If MessageBox.Show(drhf) |
-- 作者:有点甜 -- 发布时间:2018/9/9 20:15:00 -- 判断一下列是什么列,如
Dim str As String = sheet(2, i).text.replace("/", "")
ElseIf dc.IsNumeric Then
Else
End If |
-- 作者:blsu33 -- 发布时间:2018/9/9 20:28:00 -- .NET Framework 版本:2.0.50727.8935 Foxtable 版本:2018.8.30.1 错误所在事件:自定义函数xlsimporter 详细错误信息: 调用的目标发生了异常。 该字符串未被识别为有效的布尔值。不能在 overbudget 列中存储 <0>。所需类型是 Boolean。 该字符串未被识别为有效的布尔值。 现在用的是内部数据源,导入的 EXCEL表字段,录入的是FALSE,为何进来后是这样呢?
[此贴子已经被作者于2018/9/9 20:33:22编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/9/9 21:07:00 -- 应该是你赋值的时候报错的,下面的代码,也要判断一下cname列是什么类型,然后对应处理的。
r(cname)= sheet(n, i).Text
|