【问题标题】:excel import to datatable with incorrect data typesexcel导入数据类型不正确的数据表
【发布时间】:2012-08-28 20:38:26
【问题描述】:

我有一个要导入数据表的 excel 文档。价格列有一个小数点后四位的数字,例如 1234.2300。在进行导入时,我看到列类型是 int32,并且我丢失了前导零,例如 1234.23。我想在导入时保留零。如何更改 DataTable 的 DataType ?

oConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;data source=" + SavedFile + ";Extended Properties=Excel 12.0;");

                foreach (string sheet in sheets)
                {
                    if (!string.IsNullOrEmpty(sheet))
                    {
                        string query = string.Format("Select * from [{0}$]", sheet);
                        OleDbDataAdapter cmd = new OleDbDataAdapter(query, oConn);

                        oDS.Locale = CultureInfo.CurrentCulture;
                        cmd.Fill(oDS);
                        cmd = null;
                    }
                }

【问题讨论】:

    标签: c#


    【解决方案1】:

    通过右键单击列标题并选择“格式化单元格”并在新菜单中选择“文本”来更改 Excel 中的列类型。
    完成此操作后,它将以字符串形式返回数字,因此将保留尾随零。

    【讨论】:

    • 如果我将其更改为带有 4 位小数的文本或货币,它仍然无法正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 2014-01-22
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多