以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]日期数据从EXCEL表中导入的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70603) |
-- 作者:chnfo -- 发布时间:2015/6/24 23:47:00 -- [求助]日期数据从EXCEL表中导入的问题 希望从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中的数据会被认为是字符,而无法转换为日期? 如何解决之? |
-- 作者:大红袍 -- 发布时间:2015/6/25 0:02:00 -- 意思是你的excel内容是2015/7/7,但是你的列是double类型。 |
-- 作者:大红袍 -- 发布时间: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 |