728x90
반응형
망할 Interop 정말 불편하다
여러모로 버전 맞춰줘야하는것도 있고
레지스트리를 건드려서 오류도 개별적으로 잡아줘야하고
그럴때 다른 플러그인이 없을까 알아보다가
EP Plus 란 .NET nuget 패키지를 발견했다.
Nuget 패키지 관리자 > Nu Get 패키지 관리 > EP PLUS > 4.5.3.3 으로 설치!
아래는 EP PLUS를 이용해서 dataTable을 읽어 파일을 내려주는 코드이다.
public void setExportEpPlus(DataTable ds , string current_time)
{
//파일이름 지정
string fileName = "invoice_" + current_time + ".xlsx";
//-------------엑셀 Export 시작 --------------
ExcelPackage pck = new ExcelPackage();
//엑셀 시트 이름을 Var에 저장
var wsheet = pck.Workbook.Worksheets.Add("Sheet1");
for (var i = 0; i < ds.Columns.Count; i++)
{
wsheet.Cells[1, i + 1].Value = ds.Columns[i].ColumnName;
}
for (var i = 0; i < ds.Rows.Count; i++)
{
for (var j = 0; j < ds.Columns.Count; j++)
{
wsheet.Cells[i + 2, j + 1].Value = ds.Rows[i][j];
}
}
//파일 저장경로 + 파일이름
if (File.Exists(paths + fileName))
{
File.Delete(paths);
}
// 엑셀파일을 물리디스크에 저장
FileStream objFileStrm = File.Create(paths + fileName);
objFileStrm.Close();
// 엑셀파일로 쓰기
File.WriteAllBytes(paths + fileName, pck.GetAsByteArray());
//------------ 엑셀파일 생성 완료 ------------
//Close Excel package
pck.Dispose();
}
너무 편하다.
오류도 없이 깔끔하게 Export 됨.
728x90
반응형
'코딩-C#' 카테고리의 다른 글
c# 엑셀 Excel DataGridView initialize 초기화 하는 방법 (0) | 2021.09.07 |
---|---|
c# 셀레니움 크롬 드라이버 브라우져 감추기 (백그라운드 실행) (1) | 2021.08.18 |
C# 파일을 생성하기 위한 폴더 생성 방법 (0) | 2021.08.18 |
C# 문자에서 숫자만 추출하는 코드 (0) | 2021.08.18 |
C# sqlite 파일 상대경로 설정하는법 db 파일 프로젝트 경로 안으로 (0) | 2021.08.17 |