ASP.NET中的Excel文件上载问题

时间:2012-02-12 04:35:02

标签: asp.net excel oledb

我有一个应用程序,我正在上传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

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

  7. 如果我们上传一张带有Data Above的Excel表格,它只会显示如下..


    列1

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

    5. 您可以在上面的T123,123Q中看到丢失(它将是BLANK数据)。当我上传Excel工作表时,这是我的应用程序的问题。

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

1 个答案:

答案 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;'"