【问题标题】:cannot import left aligned values from excel sheet to datatable无法将左对齐值从 Excel 工作表导入数据表
【发布时间】:2018-06-27 05:04:29
【问题描述】:

我想将 Excel 工作表导入到DataTable。我使用以下代码:

        string path = @"" + /****path of excel file****/;
        string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";
        OleDbConnection xlConn = new OleDbConnection(connectionString);
        xlConn.Open();

        OleDbCommand selectCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", xlConn);
        OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
        dataAdapter.SelectCommand = selectCommand;
        itemMasterUploadDataTable = new System.Data.DataTable();
        dataAdapter.Fill(itemMasterUploadDataTable );
        xlConn.Close();

一切正常Excel工作表中的左对齐值除外

上图显示了 excel 表的其中一列的一部分。右对齐值(1511、1511、2202、2202)已正确输入到数据表中,但左对齐值(0450、0405、0406、0406、0406、0406、0401)输入为空。我究竟做错了什么?我想将所有值导入数据表中。

【问题讨论】:

  • 为什么不改变所有值的对齐方式然后导入呢?
  • 好吧,我刚试过你的代码,它可以工作,可以看到填充了所有值的数据表
  • @Prany 设计的 Excel 表格不在我手上
  • 正如我所说,我试过你的代码,它可以工作
  • 我不知道.. 它不适合我。我认为,excel表的问题..

标签: c# .net excel visual-studio datatable


【解决方案1】:

我认为它不依赖于对齐。列中的所有值必须是相同的数据类型。看起来左对齐来自公式。检查单元格的属性。

【讨论】:

  • 数据表中的列没有任何特定的数据类型。所以,它应该接受所有的值,ryt?
【解决方案2】:

如果您在 excel 文件中执行此操作,它将起作用:

  1. 复制整列
  2. 选择第一个值
  3. 按住 CTRL(CMD) 和 ALT(OPTION) 键
  4. 推V

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多