Проблема загрузки файла Excel в ASP.NET - PullRequest
0 голосов
/ 12 февраля 2012

У меня есть приложение, в которое я загружаю файл Excel и отображаю данные внутри GridView.Мои проблемы теперь, когда я загружаю файл загружается.Если Данные содержат MIX Intergers и Текстовые данные, Текстовые данные не отображаются внутри Gridview и DataSet, в который я его загружаю.

public DataTable GetExcelData(string _FileName)
{
    DataSet ds = new DataSet();

    string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _FileName + ";Extended Properties=Excel 8.0;";

    OleDbConnection connection = new OleDbConnection(connectionString);
    connection.Open();

    string sheetname = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[0]["table_name"].ToString();
    try
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetname + "]", connection);
        adapter.Fill(ds);
        connection.Close();
        return ds.Tables[0]; ;
    }
    catch (Exception ex)
    {
        try
        {
            if (connection.State == ConnectionState.Open)
                connection.Close();
        }
        catch (Exception) { }

        throw ex;
    }
}

Это код, из которого я загружаю данные вDataSet.

Я покажу вам пример данных


Столбец1

  1. 1234
  2. 2345
  3. 4567
  4. T123
  5. 123Q
  6. 6789

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


Столбец1

  1. 1234
  2. 2345
  3. 4567
  4. .
  5. .
  6. 6789

Вы можете видеть в вышеприведенном T123,123Q отсутствует (это будут ПУСТЫЕ данные).Это проблема с моим приложением, когда я загружаю лист Excel.

Кто-нибудь сталкивался с такой ситуацией?Можно ли как-то решить эту проблему?

1 Ответ

2 голосов
/ 12 февраля 2012

Попробуйте эту строку подключения ... Теперь она работает нормально

Эта строка подключения определяется использованием ее работы для XLS

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _FileName + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'"

Для XLSX

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + _FileName +";Extended Properties='Excel 12.0;HDR=YES;'"
...