在不丢失数据的情况下从excel文件中读取的最佳方法是什么? Vb.net

时间:2013-03-14 13:19:51

标签: vb.net excel ado.net

在不丢失数据的情况下从excel文件中读取的最佳方法是什么? Excel工作表在使用ADO读取时将列格式化为HH:MM:SS,时间格式更改为日期并丢失实际值:

来自excel的示例: enter image description here

导入到网格视图后: enter image description here

代码:

        Try
        ' Clear the DataGridView and the connection string TextBox
        Dim Datatable As New DataTable("Sometable")
        ' Fill the DataGridView and connection string TextBox
        Using connection As New OleDb.OleDbConnection(Super.Excel_GetConnectionString(txtZDCalc_txtPerPath.Text, txtZDCalc_txtPerPath.Tag))
            connection.Open()
            Using adapter As New OleDb.OleDbDataAdapter("SELECT * FROM [" & cboxZDCalc_Sheet.SelectedItem & "]", connection)
                adapter.Fill(Datatable)
            End Using
        End Using

        Super.ZD_GetEmployees(Datatable)
    Catch ex As Exception
        ' Display any errors
        MessageBox.Show("[" & ex.[GetType]().Name & "] " & ex.Message & ex.StackTrace)
    End Try

为什么导入时间后会丢失值?

1 个答案:

答案 0 :(得分:0)

听起来好像要显示TimeSpan而不是日期。 Excel将单元格的值存储为日期时间,并使用格式控制它的显示方式。

您要做的是将DataTable中列的数据类型更改为TimeSpan

请点击此处了解如何执行此操作:How To Change DataType of a DataColumn in a DataTable?