Как выбрать номер из файла Excel? - PullRequest
0 голосов
/ 29 сентября 2010

Я использую этот код для загрузки файла Excel в таблицу данных:

 public static DataTable ImportExcelFile(string connectionString)
        {
            DbProviderFactory factory =
                DbProviderFactories.GetFactory("System.Data.OleDb");
            var listCustomers = new DataTable();

            using (DbConnection connection = factory.CreateConnection())
            {
                if (connection != null)
                {
                    connection.ConnectionString = connectionString;
                    using (DbCommand command = connection.CreateCommand())
                    {
                        // Cities$ comes from the name of the worksheet
                        command.CommandText = "SELECT * FROM [Sheet1_2$]";
                        connection.Open();
                        using (DbDataReader dr = command.ExecuteReader())
                        {
                            listCustomers.Load(dr);
                        }
                    }
                }
            }
            return listCustomers;
        }

Проблема в том, что некоторые столбцы в файле Excel, например AccountID, содержат как строковые данные ('quanmv'), так и число (123456). Когда я использую этот код, он просто игнорирует ячейку с числовым значением и оставляет его пустым.

Как я могу это исправить?

Большое спасибо.

1 Ответ

1 голос
/ 29 сентября 2010

По умолчанию соединение с Excel пытается угадать типы данных столбцов.Если он угадает неправильно, он может оставить нули там, где типы не конвертируются.Вы можете добавить IMEX=1 к строке подключения, чтобы отключить это автоматическое угадывание, и рассматривать все значения как строки.

...