阅读excel,但价值观以不同的格式

我正在做另一个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); 

不,当我把数据集中的所有值都循环的时候,他们做了一些事情,但是问题是我上面提到的所有那些在前面都是零的人变得像。

  0076464688334 = 76464688334 

我喜欢replace0%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中的单元格的types,因为单元格中的值被转换为简单的数字。

要做到这一点,您可以将格式设置为文本,然后将其与您的阅读器映射到一个string。

或者,您可以使用COM接口来读取电子表格或尝试下面这个:

ExcelDataReader

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

EPP Plus

检查这个链接,我也面临着你现在面临的同样的问题,

http://www.codeproject.com/KB/database/GenericParser.aspx

我的自定义代码,你在这里find我正在使用读取文件代码是在vb.net请使用转换实用程序将vb.net转换为C#。

http://uploading.com/files/7d79e7e2/Excel%2Breading.zip/

如果你不知道如何解决它只是评论我的答案,并从stackoverflow聊天室聊天我会告诉你,你可以如何解决这个问题。

如果您从我的答案中find您的解决scheme,请将其标记并指出,谢谢。