View

예전에 SheetJS를 이용해서 엑셀데이터를 가져오고
엑셀을 시트별로 만드는 것을 했었는데
javascript :: SheetJS 테이블들 엑셀 시트 별로 다운로드하기
이번에 엑셀다운로드를 구현하는 일을 맡게 되었다. 이전까지는 엑셀 다운로드를 할 때 단일 시트형식이었기 때문에 큰 어려움은 없었다. 하지만 이번에는 테이블에 따라 시트를 나눠달라는 요
w94dev.tistory.com
C# DLL을 다운받아 직접 엑셀데이터를 가져와보자
첫 번째 / DLL 다운받기 🔥
엑셀 데이터를 가져오기 위해서는 먼저 DLL을 다운받아야한다
솔루션탐색기>마우스 오른쪽 버튼 클릭> NuGet패키지관리 클릭

ExcelDatareader와
ExcelDataReader.DataSet을 다운로드 받는다
둘 다 받아야 한다!
두 번째 / ExcelDataReader참조로 넣기🔥
엑셀 데이터를 부를 소스페이지에
using ExcelDataReader; 를 추가해주어 엑셀 데이터를 가져올 준비를 끝낸다
사용 예시 🔥
DataSet dsExcel = null;
using (var stream = File.Open(filepath, FileMode.Open, FileAccess.Read))
{
ExcelReaderConfiguration conf = new ExcelReaderConfiguration();
// 한글 인코딩
conf.FallbackEncoding = Encoding.GetEncoding("ks_c_5601-1987");
using (var dtreader = ExcelReaderFactory.CreateCsvReader(stream, conf))
{
dsExcel = dtreader.AsDataSet();
}
}
foreach (DataTable datatableExcel in dsExcel.Tables)
{
foreach (DataRow DtRw in datatableExcel.Rows)
{
for (int i=0; i< exDtRw.ItemArray.Length; i++)
{
Console.WriteLine(exDtRw[i].ToString());
}
}
}
❗ ExcelDataReader 사용 시 일어날 수 있는 문제 ❗
😃 한글인코딩
처음에 엑셀 데이터를 가져왔을 때 한글 깨짐현상이 있었다.
그때는 다음 인코딩을 추가해준다.
ExcelReaderConfiguration conf = new ExcelReaderConfiguration();
conf.FallbackEncoding = Encoding.GetEncoding("ks_c_5601-1987");
😃 엑셀 유형 문제
나는 정해진 엑셀 형식이 csv였기 때문에 ExcelReaderFactory.CreateCsvReader를 사용했다 .
엑셀에서 xlsx, xls , csv 형식이 존재하기 때문에 형식에 맞는 함수를 사용해주면 된다.
형식이 모두 필요하다면 switch 구문이나 if문으로 구분해서 사용하면 될 듯하다
Method | 해당 형식 |
CreateBinaryReader | xls |
CreateOpenXmlReader | xlsx |
CreateCsvReader | csv |

'C#' 카테고리의 다른 글
C# :: ASP프레임 워크에서 클릭된 버튼 ID 가져오기 (How to get the ID of the clicked button) (0) | 2023.10.13 |
---|---|
C# :: 엑셀 데이터와 데이터 베이스 데이터 비교하여 결과 엑셀 다운로드 하기 (0편) (0) | 2023.10.12 |
C# :: String.Equals 메소드 사용하기 (0) | 2023.10.11 |
C# :: 비밀번호 같은 문자 3번 체크 , 연속된 키보드 문자열 체크 (0) | 2022.03.10 |
ExecuteScalar() / ExecuteReader() / ExecuteNonQuery() 의 차이점 : asp.net (0) | 2020.07.05 |