DataGrid 컨텐츠 내보내기

2080 단어

작업 중에 DataGrid의 내용을 다른 파일로 내보내야 할 수도 있습니다. 예를 들어 텍스트 파일, EXCEL 파일, WORD 파일 등입니다.


WORD, EXCEL 파일의 경우 다음 방법을 사용할 수 있습니다 (이하 EXCEL의 경우): Response.Clear(); Response.Buffer= true; Response.Charset="GB2312"; Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls"); Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//출력 흐름을 중국어로 설정하기 Response.ContentType = "application/ms-excel";//출력 파일 형식을 excel 파일로 설정합니다. this.EnableViewState = false; System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); DataGrid1.RenderControl(oHtmlTextWriter); Response.Write(oStringWriter.ToString()); Response.End(); 여기에는 DataGrid의 RenderControl 방법을 사용합니다. 이 방법은 DataGrid의 포맷된 Html 내용을 하나의 Writer로 출력합니다. 그러면 서버에서 DataGrid의 Html 형식의 코드를 얻을 수 있습니다.WORD, EXCEL은 모두 포맷되어 있기 때문에 HTML 형식의 내용을 쉽게 식별할 수 있지만 TEXT 파일에는 안 됩니다. 위의 코드가 출력한 TXT 파일은 HTML 형식의 TXT 파일이 될 것입니다. 생각보다 DATAGRID의 텍스트 내용이 아닙니다.해결책은 HTMLCONTROL입니다.HTMLCONTROL은 모두 innerHTML과 innerText 두 가지 속성이 있는데 여기서 이 두 가지 속성을 이용하여 텍스트의 내보내기를 실현한다. HtmlGenericControl div=new HtmlGenericControl ().div.innerHTML=oStringWriter.ToString(); div.innerText는 출력할 텍스트이기 때문에 위의 코드는 Response로 수정되었습니다.Clear(); Response.Buffer= true; Response.Charset="GB2312"; Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls"); Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//출력 흐름을 중국어로 설정하기 Response.ContentType = "application/ms-excel";//출력 파일 형식을 excel 파일로 설정합니다. this.EnableViewState = false; System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); DataGrid1.RenderControl(oHtmlTextWriter); HtmlGenericControl div=new HtmlGenericControl(); div.InnerHTML=oStringWriter.ToString(); Response.Write(div.InnerText); Response.End();

좋은 웹페이지 즐겨찾기