Чтение Excel, но значения приходят в другом формате - PullRequest
4 голосов
/ 12 сентября 2011

Я делаю еще одно приложение Windows Form, но происходят некоторые странные вещи, в первом примере у меня есть значение 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 ]

2 голосов
/ 12 сентября 2011

Проверьте эту ссылку, я также столкнулся с той же проблемой, с которой вы сталкиваетесь сейчас,

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

мой код для настройки вы найдете здесь, который я использую для чтения кода файла:в vb.net, пожалуйста, используйте утилиту для конвертирования vb.net в c #.

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

Если вы не можете понять, как это решить, просто прокомментируйте мой ответ и сделайтечат из чата stackoverflow, я расскажу вам, как вы можете решить эту проблему.

Если вы найдете свое решение из моего ответа, отметьте его и укажите его, спасибо.

2 голосов
/ 12 сентября 2011

Вы должны изменить тип ячейки в Excel, потому что значения в ячейке преобразуются в простые числа.

Для этого вы можете установить для Форматирования текст, который затем будет сопоставлен со строкой.с вашим читателем.

В качестве альтернативы вы можете использовать интерфейсы COM для чтения ваших электронных таблиц или попробовать это:

ExcelDataReader

, если они открытыофисный формат (файлы .XLSX) вы можете использовать

EPP Plus

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...