c#读写excel(Office 2007),程序自动在指定绝对路径上加上了运行时路径,然后异常说找不到文件。怎么办?
我写了一段代码是这样的,想要打开excel但是却在倒数第八行adapter.Fill(ds)处报异常。异常是说:'C:\Users\v-cason\Documents\V...
我写了一段代码是这样的,想要打开excel但是却在倒数第八行adapter.Fill(ds)处报异常。
异常是说:'C:\Users\v-cason\Documents\Visual Studio 2010\Projects\DemoForRenameToolConsole\DemoForRenameToolConsole\bin\Debug\C\Users\v-cason\scwdemo\demo2.xlsx' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
就是说他找不到路径。
我输入的路径是:C:\\Users\v-cason\scwdemo\demo2.xlsx
在此步之前以及之后这个值都保持为这个见第四行excelConnection
然而,这异常中却显示,找不到的路径,是系统的运行路径加上了我的输入路径。
我直接去bin文件夹中运行exe程序也仍然解决不了问题。
你能帮我看看吗?
Console.WriteLine(info);
string sheetName = "C\\Users\\v-cason\\scwdemo\\demo2.xlsx";
string excelConString = "";
OleDbConnection excelConnnection;
DataTable dt = null;
string sql = string.Format("select * from [{0}$] ", sheetName);
try
{
excelConString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Persist Security Info=False; Data Source={0}; Extended Properties=Excel 12.0", sheetName);
excelConnnection = new OleDbConnection(excelConString);
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, excelConnnection);
adapter.Fill(ds);
dt = ds.Tables[0];
Console.WriteLine("Succeeded in dealing the excel sheet");
}
catch (Exception ex)
{
Console.WriteLine("Exception Occured!"+Environment.NewLine+ex.Message);
}
你们是对的,确实是少了个冒号!谢谢。但是他还是不能执行成功。说找不到我的表名这怎么办呢?看来我的sql中表名错了,能请教一下怎么改才对吗? 展开
异常是说:'C:\Users\v-cason\Documents\Visual Studio 2010\Projects\DemoForRenameToolConsole\DemoForRenameToolConsole\bin\Debug\C\Users\v-cason\scwdemo\demo2.xlsx' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
就是说他找不到路径。
我输入的路径是:C:\\Users\v-cason\scwdemo\demo2.xlsx
在此步之前以及之后这个值都保持为这个见第四行excelConnection
然而,这异常中却显示,找不到的路径,是系统的运行路径加上了我的输入路径。
我直接去bin文件夹中运行exe程序也仍然解决不了问题。
你能帮我看看吗?
Console.WriteLine(info);
string sheetName = "C\\Users\\v-cason\\scwdemo\\demo2.xlsx";
string excelConString = "";
OleDbConnection excelConnnection;
DataTable dt = null;
string sql = string.Format("select * from [{0}$] ", sheetName);
try
{
excelConString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Persist Security Info=False; Data Source={0}; Extended Properties=Excel 12.0", sheetName);
excelConnnection = new OleDbConnection(excelConString);
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, excelConnnection);
adapter.Fill(ds);
dt = ds.Tables[0];
Console.WriteLine("Succeeded in dealing the excel sheet");
}
catch (Exception ex)
{
Console.WriteLine("Exception Occured!"+Environment.NewLine+ex.Message);
}
你们是对的,确实是少了个冒号!谢谢。但是他还是不能执行成功。说找不到我的表名这怎么办呢?看来我的sql中表名错了,能请教一下怎么改才对吗? 展开
展开全部
string sheetName = "C\\Users\\v-cason\\scwdemo\\demo2.xlsx";
改为
string sheetName = "C:\\Users\\v-cason\\scwdemo\\demo2.xlsx";
C 后面少个冒号
string sql = string.Format("select * from [{0}$] ", sheetName);
sheetName 是你Excel 文件里的 Sheet Name呀 不含有路径的
改为
string sheetName = "C:\\Users\\v-cason\\scwdemo\\demo2.xlsx";
C 后面少个冒号
string sql = string.Format("select * from [{0}$] ", sheetName);
sheetName 是你Excel 文件里的 Sheet Name呀 不含有路径的
追问
确实是少了个冒号!谢谢。但是他还是不能执行成功。说找不到我的表名这怎么办呢?
追答
你吧 Sheet 改为 你Excel 表里面的一个Sheet 的名字就OK了
From 是表名
并非是文件的路径
string sheetName = "sheet1";
string sql = string.Format("select * from [{0}$] ", sheetName);
展开全部
路径中C盘的后面少了冒号。
更多追问追答
追问
问题不是这个。我原来的路径是完全正确的。但是报异常的时候,它莫名其妙在我的路径前加上了程序运行时路径,并且把C作为一个子文件夹加在后面。
追答
建议你将EXCEL文件拷贝到C根目录下,然后修改路径试试!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
路径错了!
追问
那条路径错了?请问怎么改?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询