以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  时期时间型数据导入后为何时间部分归0  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100237)

--  作者:kwh1028
--  发布时间:2017/5/7 17:23:00
--  时期时间型数据导入后为何时间部分归0

图片点击可在新窗口打开查看此主题相关图片如下:002.jpg
图片点击可在新窗口打开查看
时期时间型数据导入后为何时间部分归0
图片点击可在新窗口打开查看此主题相关图片如下:001.jpg
图片点击可在新窗口打开查看

--  作者:有点色
--  发布时间:2017/5/7 22:08:00
--  

 参考

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=65686&skin=0

 


--  作者:kwh1028
--  发布时间:2017/5/8 9:06:00
--  谢谢老师,不过还时间归0
代码如下:
\'Syscmd.Table.QuickMerge()
Dim dlg As New OpenFileDialog \'定义一个新的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()
    \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"地区","车号","序号","时间","发动机水温(℃)","水上液压油温(℃)","风扇传动油温(℃)","变速箱油温(℃)", _
    "分动箱油温(℃)","油底壳温度(℃)","动力舱内温(℃)","发动机油压(Mpa)","储气瓶I压力(Mpa)","储气瓶II压力(Mpa)", _
    "水上液压油压(Mpa)", "变速箱油压(Mpa)","电流(A)","电压(V)","转速(rpm)","车速(km/h)","中置油箱油量", _
    "车尾油箱油量", "总里程(km)","本次里程(km)","行驶摩托小时(h:m)","总摩托小时(h:m)"}
    \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
    For n As Integer = 1 To  Sheet.Rows.Count -1
        Dim r As Row = Tables("总表").AddNew()
        Dim ss() As String
        For m As Integer = 0 To nms.Length - 3
            r(nms(m)) = Sheet(n,m).Value
        Next
        r(nms(3)) = Sheet(n,3).text
        ss = Sheet(n,nms.Length - 2).Value.split(":")
        r(nms(nms.Length - 2)) = cdbl(cint(ss(0))*3600 +cint(ss(1))*60)
        ss = Sheet(n,nms.Length - 1).Value.split(":")
        r(nms(nms.Length - 1)) = cdbl(cint(ss(0))*3600 +cint(ss(1))*60)
    Next
    Tables("总表").ResumeRedraw()
End If

请老师再看一下时间列的代码怎么改?

--  作者:有点色
--  发布时间:2017/5/8 9:08:00
--  

 不能用 XLS.Book ,这个东西有bug,不能获取时间的。

 

 必须使用vba,也就是2楼的例子才行。


--  作者:有点色
--  发布时间:2017/5/8 9:15:00
--  

试试下面代码,如果有问题,请把你的excel文件发上来测试。

 

\'Syscmd.Table.QuickMerge()
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "excel文件|*.xls;*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim App As New MSExcel.Application
    try
        Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
        Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
        Tables("总表").StopRedraw()
        \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
        Dim nms() As String = {"地区","车号","序号","时间","发动机水温(℃)","水上液压油温(℃)","风扇传动油温(℃)","变速箱油温(℃)", _
        "分动箱油温(℃)","油底壳温度(℃)","动力舱内温(℃)","发动机油压(Mpa)","储气瓶I压力(Mpa)","储气瓶II压力(Mpa)", _
        "水上液压油压(Mpa)", "变速箱油压(Mpa)","电流(A)","电压(V)","转速(rpm)","车速(km/h)","中置油箱油量", _
        "车尾油箱油量", "总里程(km)","本次里程(km)","行驶摩托小时(h:m)","总摩托小时(h:m)"}
        \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
        Dim rg = ws.UsedRange
        For n As Integer = 2 To rg.Rows.Count
            Dim r As Row = Tables("总表").AddNew()
            Dim ss() As String
            For m As Integer = 0 To nms.Length - 3
                r(nms(m)) = ws.cells(n,m+1).Value
            Next
            r(nms(3)) = ws.cells(n,4).text
            ss = ws.cells(n,nms.Length - 2 + 1).Value.split(":")
            r(nms(nms.Length - 2)) = cdbl(cint(ss(0))*3600 +cint(ss(1))*60)
            ss = ws.cells(n,nms.Length - 1+1).Value.split(":")
            r(nms(nms.Length - 1)) = cdbl(cint(ss(0))*3600 +cint(ss(1))*60)
        Next


    catch ex As exception
        msgbox(ex.message)
    finally

        app.quit
        Tables("总表").ResumeRedraw()
    End try
   
End If

[此贴子已经被作者于2017/5/8 10:20:22编辑过]

--  作者:kwh1028
--  发布时间:2017/5/8 10:15:00
--  导入较长时间后弹出如图提示,数据正常

图片点击可在新窗口打开查看此主题相关图片如下:003.jpg
图片点击可在新窗口打开查看

--  作者:有点色
--  发布时间:2017/5/8 10:17:00
--  

 项目和excel文件发上来测试。


--  作者:kwh1028
--  发布时间:2017/5/8 10:36:00
--  上传项目文件及excel文件,请老师看一下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:123.xls
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:车辆仪表数据查询系统.table


单击导入仪表数据菜单按钮时,要很长时间, 还有弹出窗口,开发者密码111111,最后两个字段为时长,时间字段为日期时间型
[此贴子已经被作者于2017/5/8 10:44:53编辑过]

--  作者:有点色
--  发布时间:2017/5/8 10:42:00
--  
 参考2楼、5楼去做,不会做,上传具体项目。
--  作者:kwh1028
--  发布时间:2017/5/8 10:46:00
--  老师,已上传,请指正
老师,已上传,请指正,实在搞不好了