本地打开Excel文件出现错误,请指教!
礼拜六~~ 2018-07-18 03:48:32
打开EXCEL文件读取里面的内容,构建datatable数据,如果不提前在电脑打开这个表格文件,便会提示conn.open()打开错误,如果在电脑上打开文件便一切正常。将文件上传到服务器后,通过网站上传Excel 文件时,便出现以下错误
Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
源错误:
执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
以下为程序代码,请指教!!
private DataTable GetDataFromExcelWithAppointSheetName(string path)
{
//连接串
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0; " + "Data Source=" + path + ";" + " Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
//包含excel中表名的字符串数组
string[] strTableNames = new string[dtSheetName.Rows.Count];
for (int k = 0; k < dtSheetName.Rows.Count; k++)
{
strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
}
OleDbDataAdapter myCommand = null;
DataTable dt = new DataTable();
//从指定的表明查询数据,可先把所有表明列出来供用户选择
string strExcel = "select * from [" + strTableNames[0] + "]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
dt = new DataTable();
myCommand.Fill(dt);
conn.Close();
conn.Dispose();
//this.GridView1.DataSource = dt;
//this.GridView1.DataBind();
return dt;
}