阅读Excel,但价值以不同的格式出现

时间:2011-09-12 12:52:19

标签: c# winforms visual-studio-2010 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 

我很喜欢用%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");

2 个答案:

答案 0 :(得分:2)

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

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

或者,您可以使用COM界面阅读电子表格或尝试以下内容:

ExcelDataReader

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

EPP Plus

答案 1 :(得分:2)

检查此链接,我也遇到了您现在面临的同样问题,

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

我在这里找到的自定义代码,我用来读取文件代码是在vb.net中,请使用转换实用程序将vb.net转换为c#。

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

如果你无法弄清楚如何解决它只是评论我的答案,并从stackoverflow聊天室聊天,我会告诉你如何解决这个问题。

如果您从我的答案中找到您的解决方案,请勾选并指出它,谢谢。

相关问题