2014-05-21 2 views
-1

로컬 드라이브에서 Excel 시트를 읽는 중 오류가 발생했습니다. 나는 엑셀 시트를 읽기 위해 asp.net을 사용하고있다. 내 오류 :Asp.net에서 Excel sheeet을 읽으시겠습니까?

Microsoft Office Access 데이터베이스 엔진을 열거 나 " '파일을 쓸 수 없습니다. 이미 다른 사용자가 독점적으로 열었거나 데이터를보고 쓰는 데 필요한 권한이 필요합니다.

 protected void btnup_Click(object sender, EventArgs e) 
    {        
      string Extension = Path.GetExtension("Book1.xlsx"); 
      string FolderPath = @"D:/Book1.xlsx";    
      Import_To_Grid(FolderPath, Extension); 
    } 

    private void Import_To_Grid(string FilePath, string Extension) 
    { 
     string conStr = ""; 

     switch (Extension) 
     { 

      case ".xls": //Excel 97-03 

       conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"] .ConnectionString; 
       break; 

      case ".xlsx": //Excel 07 

       conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"] .ConnectionString; 
       break; 

     } 



     using (OleDbConnection conn = new OleDbConnection(conStr)) 
     { 
      conn.Open();     
      DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[]  { null, null, null, "Table" });     
      string firstSheetName = sheetsName.Rows[0][2].ToString();     
      string sql = string.Format("SELECT * FROM [{0}]", firstSheetName); 
      OleDbDataAdapter ada = new OleDbDataAdapter(sql, conStr); 
      DataSet set = new DataSet(); 
      ada.Fill(set); 

     } 
     } 

conn.Open()에서 오류가 발생합니다.

+0

사용중인 코드를 표시하십시오 !!!!! 같은 파일에 여러 사람이 액세스하는 경우이 문제점이 있음을 기억하십시오. –

+0

파일을 사용하는 사람이 없습니다. –

답변

0

이 오류는 MS Office를 사용하여 Excel 파일을 열거 나 다른 프로세스에서 Excel 파일을 열 때 발생할 수 있습니다.

+0

예 Phong vo, 나는 ...... = "DataSource ="+ FilePath + "공급자 = Microsoft.Jet.OLEDB.4.0, 확장 속성 = 'Excel 8.0, HDR = {1}'을 사용하고 있습니다." –

0

내 질문에 대한 해결책이 있습니다. 실제로 나는 연결 문자열에서 연결 문자열에 잘못된 점을 보였습니다. 경로에서 경로를 지정하지 않았기 때문에 오류가 발생했습니다.

관련 문제