-
[C#] 엑셀파일 내보내기(그리드뷰)취미생활/C# 2019. 6. 12. 08:16반응형
///<summary> /// 데이타 테이블을 엑셀로 받아온다. ///</summary> /// <param name="dt">원본 데이타 테이블.</param> /// <param name="columns"> 원본 데이타 테이블의 컬럼들.</param> /// <param name="newcolumns">보여질 테이블의 컬럼들.</param> private static void DownExcel(System.Data.DataTable dt, string[] columns, string[] newcolumns) { DataGrid grid = new DataGrid(); System.Data.DataTable targetdt = new System.Data.DataTable(); for (int i = 0; i < columns.Length; i++) { System.Data.DataColumn column = new System.Data.DataColumn(newcolumns[i]); targetdt.Columns.Add(column); } for (int i = 0; i < dt.Rows.Count; i++) { object[] obj = new object[columns.Count()]; for (int j = 0; j < columns.Length; j++) obj[j] = dt.Rows[i][columns[j]]; targetdt.Rows.Add(obj); } grid.DataSource = targetdt; grid.DataBind(); System.Web.HttpResponse objResponse = System.Web.HttpContext.Current.Response; objResponse.ClearContent(); objResponse.ClearHeaders(); System.IO.StringWriter stringWrite = new System.IO.StringWriter(); HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); grid.RenderControl(htmlWrite); objResponse.ContentType = "application/vnd.msexcel"; objResponse.AddHeader("content", "text/html; charset=utf-8"); objResponse.AddHeader("content-disposition", "attachment; filename=SearchResults.xls"); objResponse.Write(""); objResponse.Write(stringWrite.ToString()); objResponse.Flush(); objResponse.Close(); objResponse.End(); }
// 사용법
void btn_ok_Click(object sender, EventArgs e) { string[] columns = { "title", "filename", "view_count", "blogurl" }; // 기존의 컬럼명 string[] newcolumns = { "제목", "파일명", "조회수", "블로그주소"}; // 새로운 컬럼명 System.Data.DataTable dt = ds.Tables[1]; // 데이타 테이블 DownExcel(dt, columns, newcolumns); }
반응형'취미생활 > C#' 카테고리의 다른 글
[C#]MX Component V4를 이용한 통신 (0) 2019.06.12 [C#] 미쯔비시 PLC와 통신하기 위한 GX Works2설정 (0) 2019.06.12 [C#] 오라클 컨넥션 만들기!! (0) 2019.06.12 [C#] C#으로 MS차트 작성하기 (0) 2019.06.11 [C#] QR코드 생성 해보기!! (1) 2019.06.11