EPPlus 템플릿 파일을 사용해서 엑셀파일을 작성
using System.IO;
using OfficeOpenXml;
// 사전에 수식등이 설정되어 있는 엑셀 파일(템플릿 파일)을 기반으로 DB등에서 취득한 값을 지정한 셀에 설정하고 싶을 경우 & byte[]를 엑셀로 다운로드 시킬 경우
byte[] source;
MemoryStream stream = new MemoryStream();
using (var template = System.IO.File.OpenRead(AppDomain.CurrentDomain.BaseDirectory + "/App_Data/template.xlsx"))
using (var package = new ExcelPackage(stream, template))
{
ExcelWorksheet worksheet = null;
worksheet = package.Workbook.Worksheets.Where(s => s.Name == "Sheet1").FirstOrDefault();
// 내용 설정
worksheet.Cells[5, 2].Value = "value1";
worksheet.Cells[5, 3].Value = "value2";
worksheet.Cells[5, 4].Value = "value3";
package.Save();
source = stream.ToArray();
}
보충 설명
출력시의 ContentType의 설정
확장자가 XLSX의 경우
ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
확장자가 XLSM의 경우
ContentType = "application/vnd.ms-excel.sheet.macroEnabled.12";
※템플릿을 불러오는 법과 작성 방법은 XLSX과 같다.