C#에서 자유 및 오픈 소스 라이브러리를 사용하여 Excel 파일 읽기
C# 애플리케이션에서 Excel 파일을 직접 읽는 데 어려움을 겪은 적이 있나요? 그렇다면 혼자가 아닙니다! 많은 개발자들이 수동 프로세스에 의존하지 않고 Excel 스프레드시트에서 데이터를 추출하는 도전을 겪고 있습니다. 좋은 소식은 오픈 소스 라이브러리를 사용하여 이를 효율적이고 무료로 달성할 수 있는 방법이 있다는 것입니다. 이 블로그 포스트에서는 귀하가 C# 프로그램에서 Excel 파일(.xls)을 직접 읽는 방법을 살펴보며, 번거로운 수동 단계를 없애는 방법을 안내합니다.
문제: Excel 파일의 수동 처리
전통적으로 많은 개발자들은 Excel 시트를 유니코드 텍스트 형식으로 내보낸 다음, 결과로 생성된 탭 구분 파일을 파싱하는 수동 접근 방식을 선택해왔습니다. 이것도 가능하지만, 가장 효율적인 방법은 아닙니다. 특히 이 과정을 자주 반복하거나 여러 파일을 처리해야 할 경우 불편할 수 있습니다.
다행히도 Excel 파일을 프로그래밍 방식으로 읽는 더 좋은 방법이 있습니다. 해결책을 살펴보겠습니다!
해결책: OLE DB를 사용하여 Excel 파일 읽기
C#에서 Excel 파일을 읽는 가장 간단한 방법 중 하나는 OLE DB(객체 연결 및 임베딩 데이터베이스) 공급자를 사용하는 것입니다. OLE DB를 사용하면 Excel 파일에 데이터베이스처럼 연결하여 SQL 쿼리를 실행하고 필요한 데이터를 검색할 수 있습니다. 단계별로 진행해 볼까요:
1단계: 연결 설정
데이터를 읽기 전에 Excel 파일에 대한 연결을 설정해야 합니다. 다음은 연결 문자열을 형식화하는 방법의 예입니다:
var fileName = string.Format("{0}\\fileNameHere", Directory.GetCurrentDirectory());
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
fileName
: 이 변수는 Excel 파일의 경로를 보유합니다.connectionString
: 이는 공급자 및 데이터 출처 정보가 포함된 Excel 파일에 대한 연결입니다.
2단계: 데이터 가져오기
이제 연결을 설정했으므로 OleDbDataAdapter
를 사용하여 지정된 워크시트에서 데이터를 검색할 수 있습니다. 아래는 워크시트의 모든 데이터를 가져오는 코드입니다:
var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();
// 가져온 데이터로 DataSet을 채웁니다
adapter.Fill(ds, "anyNameHere");
DataTable data = ds.Tables["anyNameHere"];
workSheetNameHere
를 실제로 데이터를 읽고자 하는 시트의 이름으로 교체하십시오.
3단계: 데이터 조작을 위한 LINQ 사용
DataTable
에 데이터가 들어온 후, LINQ(언어 통합 쿼리)를 사용하여 데이터를 쉽게 조작하고 쿼리할 수 있습니다. 특정 필드가 비어 있는 행을 필터링하려면 다음과 같이 할 수 있습니다:
var data = ds.Tables["anyNameHere"].AsEnumerable();
var query = data.Where(x => x.Field<string>("phoneNumber") != string.Empty).Select(x =>
new MyContact
{
firstName = x.Field<string>("First Name"),
lastName = x.Field<string>("Last Name"),
phoneNumber = x.Field<string>("Phone Number"),
});
주요 요점 요약
요약하자면, OLE DB 공급자를 사용하여 C#에서 Excel 파일을 읽는 것은 간단하며 수동 파일 처리를 없앱니다. 기억해야 할 주요 사항은 다음과 같습니다:
- OLE DB 공급자를 사용하여 적절한 연결 문자열 설정.
OleDbDataAdapter
를 사용하여 Excel에서 데이터 가져오기.- LINQ를 활용하여 추출된 데이터를 필터링하고 조작.
이 단계들을 따르면 C# 애플리케이션에서 Excel 파일을 직접 읽는 원활한 통합을 만들 수 있습니다.
결론
C#에서 Excel 파일을 효율적으로 읽는 것은 번거롭지 않아야 합니다. 우리가 설명한 접근 방식을 사용하면 프로세스를 자동화하고 시간을 절약하며 애플리케이션 개발에서 중요한 부분에 집중할 수 있습니다.
이제 Excel 파일을 읽는데 있어 수동 단계를 제거하는 방법을 갖추었으니, 자신의 프로젝트에서 시도해 보세요!