在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
- 1234
- 2345
- 4567
- T123
- 123Q
- 6789
如果我们用上面的数据上传Excel工作表,它将只显示它像这样..
列1
- 1234
- 2345
- 4567
- 。
- 。
- 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;'"