【问题标题】:Reading excel but values are coming in different format读取 excel 但值以不同的格式出现
【发布时间】:2011-09-12 12:52:18
【问题描述】:

我正在制作另一个 Windows 窗体应用程序,但发生了一些奇怪的事情,第一个示例我的值为 0076464688334,在我的 excel 表中我正在使用它们阅读它们..

        MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + fileName + "';Extended Properties=Excel 12.0;");
        MyConnection.Open();
        myCommand.Connection = MyConnection;

      DataSet ds = new DataSet();
        String qry = "SELECT number FROM [Sheet1$]";
        OleDbDataAdapter odp = new OleDbDataAdapter(qry, MyConnection);
        odp.Fill(ds);

不,当我拥有数据集中的所有值时,我会循环它们 n 做一些事情,但问题是我上面提到的值,所有前面为零的人都变得像。

         0076464688334  = 76464688334 

我喜欢用 %0 替换 0 并用 0 替换代码 %0 并且它解决了,现在另一个问题是我有一个正在成为的值......

         824968717929  = 8.2496871793e+011

这些是条形码,我需要完全匹配,找不到解决方法,请帮助:)。

提前谢谢大家..

附加代码:

       for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                if (ds.Tables[0].Rows[i][0].ToString() != "" )
                {
                    googleList.Add(ds.Tables[0].Rows[i][0].ToString().Replace("%0", "0"));


                 //   EbayList.Add(ds.Tables[0].Rows[i][0].ToString());

                    string tmp = string.Empty;
                    tmp = ds.Tables[0].Rows[i][0].ToString().Replace("%0","0");

【问题讨论】:

  • 我也遇到过这个问题,给我一点时间,我给你解决方案如何正确地从 excel 中获取数据。
  • 谢谢,期待:)
  • 我在其中发布了两个链接,第一个给出了完整的信息,另一个链接是我使用 dll 自定义代码。也检查一下。
  • 抱歉,我发现它太难理解了。
  • 只需在你的应用程序中添加引用,在c#中转换代码并将excel文件路径传递给它,它就会返回给你excel文件数据。

标签: c# winforms visual-studio-2010 excel


【解决方案1】:

您应该在excel中更改单元格的类型,因为单元格中的值会转换为简单的数字。

为此,您可以将格式设置为文本,然后您的阅读器会将其映射到字符串。

您也可以使用 COM 接口来读取电子表格或试试这个:

ExcelDataReader

如果它们是开放式办公格式(.XLSX 文件),您可以使用

EPP Plus

【讨论】:

  • 谢谢,非常好,易于理解:)。
  • 在 Excel 中尝试文本类型。应该管用。如果您对此感到满意,您可以投票;)
猜你喜欢
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多