读书人

上传EXCEL一直提示文件不存在发现

发布时间: 2012-03-17 19:06:27 作者: rapoo

上传EXCEL,一直提示文件不存在,发现系统获取的路径有问题,如何解决?
下面这个是从网上下载的
public DataSet ExecleDs(string filenameurl, string table)
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);

OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
DataSet ds = new DataSet();
odda.Fill(ds, table);

return ds;

}
////////

真正上传操作
string strpath = fu_Input.PostedFile.FileName.ToString(); ; //获取Execl文件路径
string filename = fu_Input.FileName; //获取Execl文件名
DataSet ds = ExecleDs(strpath, filename);
就在这儿出现错误,
会提示

Microsoft Jet 数据库引擎找不到对象'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\书法教材征订单.xls'。请确定对象是否存在,并正确地写出它的名称和路径。


不管你选择什么地方的东西上传,都会提示'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\'目录下没有,确实没有呀,他的路径怎么老出错呢,不是我选择的上传文件的地址??


代码参考的这里的:http://www.cnblogs.com/boss504/articles/1182600.html

[解决办法]
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";

改为
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + server.mappath(filenameurl)+ ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";

[解决办法]
或将filenameurl指定为绝对定位路径:如F:\bak\a.cvs
[解决办法]
先上传到服务器上,然后在读取服务器上的内容,然后再把服务器上的文件删除。你那没有上传到服务器上吧。
[解决办法]
你先把
string strpath = fu_Input.PostedFile.FileName.ToString(); ; //获取Execl文件路径
string filename = fu_Input.FileName; //获取Execl文件名

这两个写死。

然后跑程序 如果不行的话 就是程序有问题。

上传是excel导入DataTable中的。

C# code
public void UploadInventoryData(string sheetName, string excelFile)        {            string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 12.0;";            string strExcel = "select * from [" + sheetName + "$]";            DataSet ds = new DataSet();            OleDbConnection conns = new OleDbConnection(strConn);            conns.Open();            OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, conns);            adapter.Fill(ds, "res");            conns.Close();} 

读书人网 >asp.net

热点推荐