Foxtable(狐表)用户栏目专家坐堂 → [求助]日期数据从EXCEL表中导入的问题


  共有2017人关注过本帖树形打印复制链接

主题:[求助]日期数据从EXCEL表中导入的问题

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2204 积分:18140 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]日期数据从EXCEL表中导入的问题  发帖心情 Post By:2015/6/24 23:47:00 [只看该作者]

希望从EXCEL表中导入数据,其中一列是日期,但EXCEL中显示的日期格式为2015/3/12这样的格式,而不是狐表中默认的3/12/2015

导入的代码为:
Dim dlg As new OpenFileDialog
dlg.Filter = "EXCEL文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
    Tables("TempX").StopRedraw
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Dim nms() As String = { "RegDate","Title","V" }    ‘这里RegDate是日期列,另外两个分别是字符串和数字
    For i As Integer = 1 To Sheet.Rows.Count -1    
        Dim r As DataRow = DataTables("TempX").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(i,m).Value
        Next
    Next
    Tables("TempX").ResumeRedraw
end if 

但实际执行的时候,会报出这样的错误:
从字符串“2015/7/7”到类型“Double”的转换无效。----意思是不是说EXCEL中的数据会被认为是字符,而无法转换为日期?

如何解决之?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/25 0:02:00 [只看该作者]

 意思是你的excel内容是2015/7/7,但是你的列是double类型。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/25 0:03:00 [只看该作者]

Dim dlg As new OpenFileDialog
dlg.Filter = "EXCEL文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
    Tables("TempX").StopRedraw
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Dim nms() As String = { "RegDate","Title","V" }    '这里RegDate是日期列,另外两个分别是字符串和数字
    For i As Integer = 1 To Sheet.Rows.Count -1
        Dim r As DataRow = DataTables("TempX").AddNew()
        For m As Integer = 0 To nms.Length - 1
            If DataTables("TempX").DataCols(nms(m)).IsDate Then
                r(nms(m)) = Cdate(Sheet(i,m).Value)
            ElseIf DataTables("TempX").DataCols(nms(m)).IsNumeric
                r(nms(m)) = val(Sheet(i,m).Value)
            Else
                r(nms(m)) = Sheet(i,m).Value
            End If
        Next
    Next
    Tables("TempX").ResumeRedraw
End If

 回到顶部