2009-05-21 9 views
0

XML 스프레드 시트 (* .xls)를 생성하는 타사 도구가 있습니다. 이 스프레드 시트를 읽고 처리하는 또 다른 프로그램이 있습니다. 생성 된 xml 스프레드 시트의 내용은 5 개의 열이있는 테이블이고 내 프로그램은 선택된 쿼리를 실행합니다. 생성 된 스프레드 시트에 대한 연결을 여는 중 문제가 발생했습니다. "{"외부 테이블이 예상 된 형식이 아닙니다. "}". My Connectin 문자열은 "Provider = Microsoft.Jet.OLEDB.4.0; 데이터 원본 ="+ excelFileName + "; 확장 속성 = \"Excel 8.0; HDR = 예; \ ""; 이 문자열을 변경해야합니까? 데이터 집합을 사용하고 dataSet.ReadXml (excelFileName)을 호출 해 보았습니다. 하지만 데이터 세트에는 내 표가 포함되어 있지 않습니다. XML 스프레드 시트를 읽는 방법에 대한 모든 입력 사항이 있습니까? 연결 문자열은 이전의 바이너리 형식 Excel 파일로 설정되어 같은 시간에xml 스프레드 시트를 읽는 방법

감사합니다, CS

+1

xls는 Excel 스프레드 시트 (?) – Shoban

+0

입니다. 스프레드 시트를 xml 스프레드 시트 2003 (유형 옵션 메뉴로 저장)으로 저장하면 파일 확장명은 * .xls – Cshah

+0

"xml 스프레드 시트 (* .xls)"입니다. 이것은 우연히 들썩 들썩합니다. http://en.wikipedia.org/wiki/Microsoft_Excel_file_format#File_formats 및 http://en.wikipedia.org/wiki/Office_Open_XML을 읽으십시오. –

답변

1

보인다. 당신은 XML을위한 다른 연결 문자열을 원한다.

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES"; 

당신이 Excel 2003에서 제공된 이전의 XML 형식에 대해 얘기하고 있다면, 나는이 확실하지 않다 : 새 Excel 2007의 XML 파일에 대해 얘기하는 경우에, 당신은이 connection string 필요 연결 문자열. 어떤 경우에는 Excel에서 열고 xls 파일로 저장하고 원래 사용했던 연결 문자열을 사용하는 것이 가장 좋습니다.

그런데 ConnectionStrings.com은 모든 종류의 데이터에 액세스해야하는 모든 이전 연결 문자열을 찾는 데 매우 적합합니다.

다른 사람이 지적했듯이 xml 파일 인 경우 xls 파일 확장자가 없어야하며 .xml 또는 .xlsx 여야합니다.

0
   Excel.Workbook wb1; 

      Excel.Application wb2 = new Excel.Application(); 

      wb2.DisplayAlerts = false; 
          wb1 = (Excel.Workbook)wb2.Workbooks._Open(filename); 

      if (wb1.FileFormat == Excel.XlFileFormat.xlXMLSpreadsheet) 
      { 
            wb1.SaveAs(filename, Excel.XlFileFormat.xlExcel12, Type.Missing, Type.Missing, 
         false, false, Excel.XlSaveAsAccessMode.xlNoChange, 
         Excel.XlSaveConflictResolution.xlOtherSessionChanges, false); 
      } 
      else 
      { 
       wb2.Workbooks.Close(); 

      } 

당신은 2007 형식으로 Excel 스프레드 시트를 변환 한 후 어떤 오픈 소스 제공 업체 또는 인 OleDB를 사용하여 시트를 쿼리 LINQ를 사용할 수 있습니다.

관련 문제