2010-07-13 5 views
2

안녕하세요 전문가가 Excel 파일을 구문 분석하려고합니다. 그 구조는 매우 복잡합니다. 내가 아는 가능한 방법이 있습니다.Excel 파일 구문 분석/.NET을 사용하여 긁으십시오

  • 사용 사무실 라이브러리
  • 사용 OLEDB 공급자 introp과 데이터 세트에서 파일을 엑셀 읽어 보시기 바랍니다.

그러나 문제 등 빈 일부 열, 셀 또는 행처럼 복잡하다

이 작업을 수행 할 수있는 최선의 방법은 무엇인가? 사전에

감사합니다.

답변

1

ExcelDataReader (LGPL에서 라이센스 사용 가능)을 권해드립니다. .xls 및 .xlsx 파일을 모두로드하고 각 워크 시트가 개별 DataTable 인 스프레드 시트를 DataSet으로 가져올 수 있습니다. 내가 사용한 시나리오에서 알 수 있듯이 빈 행, 빈 셀 등을 기리는 의미입니다. "매우 복잡한"구조를 처리 할 수 ​​있을지 생각해보십시오. [나는 사이트에서 하나의 부정적인 리뷰를 주목하지만 나머지는 매우 긍정적이다. 이전에도 OLEDB 방식을 사용해 왔지만이 방식은 이전에 OLEDB 방식을 사용했으나 첫 번째 단계에서 데이터 유형을 추론하는 방식에 실제 문제가 있음을 경고해야합니다. 행이 거의 없습니다. 열의 데이터 유형이 변경되면 잘못 입력 될 수도 있습니다. 문제를 악화 시키려면 값을 null로 반환하여 처음 6 ~ 7 행 이후에 변경된 데이터 유형에서 실제 null 값을 알리기 어렵게 (또는 불가능하게) 만듭니다.

0

사용자가 먼저 Excel 스프레드 시트를 CSV 파일로 저장하게하십시오. 그런 다음 CSV 파일을 내 앱에 업로드합니다. 따라서 구문 분석이 훨씬 간단 해집니다.

1

개인적으로 나는 때때로 OLEDB 방식을 사용하는 것을 선호합니다. 또는 시간에/노력/에너지를 투입하는 제 3 자 라이브러리를 사용할 수 있습니다.

SyncFusion에는 꽤 좋은 라이브러리가 있습니다.

0

필자는 OLEDB를 사용하여 업로드 된 Excel 파일을 읽었으며 실제 문제가 없습니다 (공란 대신 필드의 null은 제외하고 IsDBNull로 확인할 수 있음). 또한 NPOI 및 Excel2007ReadWrite (http://www.codeproject.com/KB/office/OpenXML.aspx)와 같은 타사 오픈 소스 도구가 유용 할 수 있습니다.

나는 두 타사 도구를 모두 철저히 평가했으며 두 가지 모두 매우 안정적이며 쉽게 통합 할 수 있습니다. Excel 2003 파일의 경우 NPOI를 권장하고 Excel 2007 파일의 경우 Excel2007ReadWrite를 권장합니다.

0

당면 과제를 잘 알고있는 것 같습니다. 스프레드 시트 형식의 복잡성을 해결하고 원하는 데이터를 추출하려면 비즈니스 로직을 작성해야합니다. 스프레드 시트 데이터에

  1. 액세스 솔루션에 필요한 노력의 작은 일부가 될 것입니다 :

    VTSO/Interop를 최고의 플랫폼이 이유 전략은 나에게 보인다. 따라서 OLEDB를 사용하면 데이터 액세스에 약간의 시간을 절약 할 수 있지만 전체 프로젝트 범위와 관련이 없을 수 있습니다.

  2. 개별 셀의 내용을 면밀히 검토하고 서식 지정과 같은 컨텍스트 정보를 고려해야 할 수 있습니다.interop을 사용하면 셀 내용, 컨텍스트 및 명명 된 범위 및 목록과 같은 다른 시트 수준 컨텍스트 정보를 완벽하게 볼 수 있습니다. 스프레드 시트를 디코딩하는 동안 이러한 유형의 정보가 필요 없다고 가정하는 것은 위험합니다.
관련 문제