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과 같다.
원글 작성일 2016-12-21
'개발 > ASP.NET' 카테고리의 다른 글
log4net의 버젼 차이에 따른 문제 해결 (0) | 2019.01.21 |
---|---|
timestamp/DateTime에서 현재시간을 기준으로 경과시간을 취득 (0) | 2019.01.21 |
EPPlus로 엑셀파일 작성 (0) | 2019.01.16 |
정수의 N위치에서 반올림 (0) | 2019.01.16 |
iTextSharp로 PDF 작성 (0) | 2019.01.16 |
댓글