2016-12-14 1 views
0

이 주제에 대한 다른 스레드의 일부를 읽었지만 여전히 작동하지 않습니다. 이유를 모르겠습니다.C#은 사무실에서 unsing하지 않고 워크 시트를 얻습니다. OLEDB

예외가 있습니다. 'Microsoft.ACE.OLEDB.12.0'- 공급자가 로컬 컴퓨터에 등록되지 않았습니다. Office 2007 및 2010 용 데이터베이스 엔진을 이미 설치했습니다.

아이디어가 있습니까?

OS : 7 승 교수 64 비트

static void Main(string[] args) 
     { 
      OleDbConnection connection = null; 
      DataTable Sheets = null; 

      String file = args[0]; 
      String filePath = Path.GetDirectoryName(args[0]); 
      String connPath = ""; 

      if(Path.GetExtension(file).Equals(".xls")) 
       connPath = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + file + ";Extended Properties=Excel 8.0"; 
      else 
       connPath = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\""; 

      try 
      { 
       connection = new OleDbConnection(connPath); 
       connection.Open(); 

      Sheets = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 

...

답변

0

찾았. x86 CPU 용 프로젝트를 컴파일해야합니다. 모든 CPU는 작동하지 않습니다.

감사합니다.

+0

이것은 귀하의 질문에 대한 직접적인 대답은 아니지만, 보시다시피, OLEDB 사용에는 많은 한계가 있습니다. 사무실 파일을 완벽하게 제어하려면 (openmml sdk : https://msdn.microsoft.com/en-us/library/office/bb448854.aspx?f=255&MSPPError=- 2147217396 –

관련 문제