在ASP.NET中的Excelfile upload问题

我有一个应用程序,我正在上传Excel文件,并显示在GridView中的数据。 我的问题是现在,当我上传文件获取上传。 如果数据包含混合数据和文本数据,则不在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. 6789

你可以在上面看到T123,123Q丢失(这将是空白的数据)。 我上传Excel工作表时,这是我的应用程序的问题。

有没有人遇到这样的情况? 有什么办法可以解决这个问题吗?

试试这个连接string…现在它的工作很好

这个连接string是通过使用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;'"