반응형
EPPlus를 사용하여 DataTable을 Excel로 내보내기
EPPlus를 사용하여 데이터 테이블을 Excel 파일로 내보내고 싶습니다. 해당 데이터 테이블에는 int 유형의 속성이 있으므로 Excel 파일에서 동일한 형식을 원합니다.
누구든지 이와 같은 DataTable을 Excel로 내보내는 방법을 알고 있습니까?
using (ExcelPackage pck = new ExcelPackage(newFile))
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Accounts");
ws.Cells["A1"].LoadFromDataTable(dataTable, true);
pck.Save();
}
그것은 당신을 위해 트릭을 할 것입니다. 필드가 int로 정의되면 EPPlus는 열을 숫자 또는 부동으로 적절하게 캐스팅합니다.
브라우저 응답으로 다운로드하려면
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("Logs.xlsx", System.Text.Encoding.UTF8));
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Logs");
ws.Cells["A1"].LoadFromDataTable(dt, true);
var ms = new System.IO.MemoryStream();
pck.SaveAs(ms);
ms.WriteTo(Response.OutputStream);
}
브라우저 사용에서 엑셀 시트를 다운로드 HttpContext.Current.Response
하는 Response
경우 Response is not available in this context.
오류가 발생합니다.
public void ExporttoExcel(DataTable table, string filename)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=GridData.xlsx");
using (ExcelPackage pack = new ExcelPackage())
{
ExcelWorksheet ws = pack.Workbook.Worksheets.Add(filename);
ws.Cells["A1"].LoadFromDataTable(table, true);
var ms = new System.IO.MemoryStream();
pack.SaveAs(ms);
ms.WriteTo(HttpContext.Current.Response.OutputStream);
}
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
다음은 DataSet을 Excel로 내보내는 스 니펫입니다.
private static void DataSetToExcel(DataSet dataSet, string filePath)
{
using (ExcelPackage pck = new ExcelPackage())
{
foreach (DataTable dataTable in dataSet.Tables)
{
ExcelWorksheet workSheet = pck.Workbook.Worksheets.Add(dataTable.TableName);
workSheet.Cells["A1"].LoadFromDataTable(dataTable, true);
}
pck.SaveAs(new FileInfo(filePath));
}
}
그리고 문 사용 :
using OfficeOpenXml;
using System.Data;
using System.IO;
참고 URL : https://stackoverflow.com/questions/13669733/export-datatable-to-excel-with-epplus
반응형
'UFO ET IT' 카테고리의 다른 글
이 매크로가 10 대신 20으로 대체되는 이유는 무엇입니까? (0) | 2020.11.16 |
---|---|
* .ipa 파일을 빌드하는 데 사용 된 프로파일을 찾는 방법은 무엇입니까? (0) | 2020.11.16 |
내 C # 응용 프로그램이 Windows 작업 스케줄러에 0xE0434352를 반환하지만 충돌하지 않습니다. (0) | 2020.11.16 |
CMD.EXE 외에 대체 Windows 셸? (0) | 2020.11.16 |
Asp.NET MVC에서 DateTime 값을 dd / mm / yyyy 형식으로 표시 (0) | 2020.11.16 |