我有一个应用程序,我正在上传Excel文件并在GridView中显示数据。 我现在的问题是,当我上传文件时上传。如果数据包含MIX的整数和文本数据,则文本数据不会显示在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的代码。
Ill显示示例数据
列1
如果我们上传一张带有Data Above的Excel表格,它只会显示如下..
列1
您可以在上面的T123,123Q中看到丢失(它将是BLANK数据)。当我上传Excel工作表时,这是我的应用程序的问题。
有没有人遇到过这样的情况?我们有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
试试这个连接字符串......现在工作正常
此连接字符串是通过使用其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;'"