## [C#] 엑셀파일 내보내기(그리드뷰) 코딩정보/C# 2019-06-12 08:16:18 * * * /// /// 데이타 테이블을 엑셀로 받아온다. /// /// 원본 데이타 테이블.</param> /// 원본 데이타 테이블의 컬럼들.</param> /// 보여질 테이블의 컬럼들.</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); } #엑셀 #Excel #.NET #c# #APS
(*No embedded English lines found. Add translations later.*)