以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导入数据按钮代码求教?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64269)

--  作者:lisheng7177
--  发布时间:2015/2/9 14:42:00
--  导入数据按钮代码求教?

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls"
dlg.MultiSelect = True \'允许选择多个文件
If dlg.ShowDialog =DialogResult.OK Then
    For Each fl As String In dlg.FileNames
        Dim mg As New Merger
        mg.SourcePath = fl
        mg.Format = "Excel"
        mg.SourceTableName = "理论机考表$"
        mg.DataTableName = "理论机考表"
        mg.Merge()
    Next
End If

With DataTables("理论机考表")
    .DataCols("身份证号码").RaiseDataColChanged()
   
End With

 

导入数据时,如有单元格数据发生了变化,不是覆盖导入,而是在原有的行数上增加,这是为什么?


--  作者:Bin
--  发布时间:2015/2/9 14:48:00
--  
这个本来就是增加行的哦.
--  作者:lisheng7177
--  发布时间:2015/2/9 14:50:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看那要怎么改才不变就不动、变则覆盖、没有则增加?
--  作者:有点甜
--  发布时间:2015/2/9 14:55:00
--  
以下是引用lisheng7177在2015/2/9 14:50:00的发言:
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看那要怎么改才不变就不动、变则覆盖、没有则增加?

 

换一种合并数据方式。

 

http://www.foxtable.com/help/topics/2334.htm

 


--  作者:lisheng7177
--  发布时间:2015/2/9 15:05:00
--  

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,理论机考,Button2,Click
详细错误信息:
String was not recognized as a valid Boolean.Couldn\'t store <0> in 是否合格 Column.  Expected type is Boolean.
String was not recognized as a valid Boolean.

Dim Book As New XLS.Book("D:\\鉴定表格\\理论机考表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("理论机考表").StopRedraw()
Dim nms() As String = {"工作单位","县公司","姓名","性别","身份证号码","文化程度","鉴定等级","申报鉴定工种","鉴定批次","申报性质","是否合格","理论考否","考试性质","年月","场次","考场","座位号","考试时间","考试地点","准考证号码","备注","照片"}
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim sfzhm As String = sheet(n,0).Text
    Dim dr As DataRow = DataTables("理论机考表").Find("身份证号码 = \'" & sfzhm & "\'")
    If dr Is Nothing Then \'如果不存在同编号的订单
        dr =  DataTables("理论机考表").AddNew()
    End If
    For m As Integer = 0 To nms.Length - 1
        dr(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables("理论机考表").ResumeRedraw()

这是什么原因报错?


--  作者:lisheng7177
--  发布时间:2015/2/9 15:07:00
--  
要导入的EXCEL表里的是否合格列是“True”和“False"
--  作者:lisheng7177
--  发布时间:2015/2/9 15:11:00
--  

我想导入的Excel表不可以放在任何盘里吗?一定得指定放在比如D:\\鉴定表格\\理论机考表.xls?


--  作者:有点甜
--  发布时间:2015/2/9 15:12:00
--  
以下是引用lisheng7177在2015/2/9 15:11:00的发言:

我想导入的Excel表不可以放在任何盘里吗?一定得指定放在比如D:\\鉴定表格\\理论机考表.xls?

 

肯定可以,参考这段

 

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls"
dlg.MultiSelect = True \'允许选择多个文件
If dlg.ShowDialog =DialogResult.OK Then

 

End If

 


--  作者:有点甜
--  发布时间:2015/2/9 15:15:00
--  

 逻辑列要特别处理一下

 

For m As Integer = 0 To nms.Length - 1
   
    If DataTables("理论机考表").DataCols(nms(m)).IsBoolean Then
        If Sheet(n,m).Value = 0 Then
            dr(nms(m)) = False
        Else
            dr(nms(m)) = True
        End If
    Else
        dr(nms(m)) = Sheet(n,m).Value
    End If
Next


--  作者:lisheng7177
--  发布时间:2015/2/9 15:16:00
--  

谢谢甜版!问题现在代码报错是什么原因?