OleDbConnection 문자열 형식에 문제가 있습니다. Excel 파일에 액세스 할 때 OleDb 클래스를 사용합니다.OleDbConnection 문제 - 폴더 이름에 공백이 포함되어 있습니다.
데이터 테이블에 엑셀 테이블을로드하는 방법입니다.
public DataSet LoadExcelFileToDataSet(string file,
string sheetName)
{
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + file + ";" +
"Extended Properties=Excel 8.0;";
var oledbConn = new OleDbConnection(connString);
try
{
// Open connection
oledbConn.Open();
// Create OleDbCommand object and select data from worksheet Sheet1
var cmd = new OleDbCommand("SELECT * FROM [" + sheetName + "$]", oledbConn);
// Create new OleDbDataAdapter
var oleda = new OleDbDataAdapter { SelectCommand = cmd };
// Create a DataSet which will hold the data extracted from the worksheet.
var ds = new DataSet();
// Fill the DataSet from the data extracted from the worksheet.
oleda.Fill(ds, "SIMCards");
return ds;
}
catch(Exception ex)
{
throw ex;
}
finally
{
// Close connection
oledbConn.Close();
}
}
이 방법이 효과적입니다. WPF 앱에서 상대 경로로이 메서드를 사용하려고하면 문제가 발생합니다.
LoadExcelFileToDataSet(Config\\simcard.xls,sheetName)
전체 경로는 다음과 같습니다 E : 빈 \ 릴리스 \ 구성 \ simcard.xls
문제가이 폴더 이름 C# 프로젝트는 \ \ C# 프로젝트가 AUSK \ T-TOOL의 \의 T-TOOL을 \ - 포함 공백
이 폴더 이름에서 공백을 제거하면 올바르게 작동합니다.
하지만 어떻게 해결할 수 있습니까? 변경 폴더 이름은 나를위한 해결책이 아닙니다.
[이] (http://stackoverflow.com/questions/4849332/how-to-specify-the-connection-string-if-the-excel- 파일 이름 포함 - 공백)? –