오전에는 시스템 주문관리 부분에 조회된 주문정보를 엑셀로 내보내 관리자가 분석할 수 있는 기능이 추가됐다. 앞서 작성한 코드는 다음과 같습니다.
Response.Clear();
Response.BufferOutput = true;
Response.Charset = "GB2312";
Response.AppendHeader("콘텐츠 처리","첨부 파일;파일 이름 = FileName.xls");
Response.ContentEncoding = Encoding.GetEncoding("GB2312");
Response.ContentType = "응용 프로그램/ms-excel";
this.EnableViewState = 거짓;
System.Globalization.CultureInfo myinfo = new System.Globalization.CultureInfo("ZH-CN", true);
StringWriter osw = new StringWriter(myinfo);
HtmlTextWriter ohtw = new HtmlTextWriter(osw);
dgQueryResult.RenderControl(ohtw);
응답.쓰기(osw);
응답.끝();
내 쿼리는 페이징을 사용했으며 고객은 쿼리된 모든 데이터를 Excel로 내보내도록 요구했습니다. 따라서 이전처럼 컨트롤의 내용을 Excel로 내보내면 이 기능을 수행할 수 없으므로 코드를 다음과 같이 변경했습니다.
응답.지우기();
Response.BufferOutput = true;
Response.Charset = "GB2312";
Response.AppendHeader("콘텐츠 처리","첨부 파일 이름 = order.xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "응용 프로그램/ms-excel";
문자열 strExcelHeader = 문자열.Empty;
문자열 strExcelItems;
if(ViewState["SQL"] != null) // 이전 쿼리에 사용된 SQL 문을 가져옵니다.
{
// 각 열의 제목을 가져오고, 각 제목을 t로 구분하고, 마지막 열 제목 뒤에 캐리지 리턴 문자를 추가합니다.
strExcelHeader = "주문 번호t딜러t지역t소형 카테고리t상품t결제 금액t주문 시간t유효 상태t처리 상태tn";
//얻은 데이터 정보를 HTTP 출력 스트림에 씁니다.
Response.Write(strExcelHeader);
// 쿼리 결과 데이터를 한 행씩 처리
ITDBHandle itDbHandle = 새로운 ITDBHandle();
itDbHandle.QueryString = ViewState["SQL"].ToString();
SqlDataReader 리더 = itDbHandle.ExecuteDataReader();
동안(리더.읽기())
{
strExcelItems = 문자열.Empty;
strExcelItems += reader["OrderID"].ToString() + "t";
strExcelItems += reader["DealerName"].ToString() + "t";
strExcelItems += reader["City"].ToString() + "t";
strExcelItems += reader["SmallClassName"].ToString() + "t";
strExcelItems += reader["BrandName"].ToString() + reader["Model"].ToString() + "t";
strExcelItems += reader["TotalPrice"].ToString() + "t";
strExcelItems += reader["OrderDate"].ToString() + "t";
strExcelItems += reader["IsValid"].ToString() + "t";
strExcelItems += reader["DealState"].ToString() +"n";
Response.Write(strExcelItems);
}
리더.닫기();
응답.끝();
}
여기서는 쿼리된 데이터를 Excel 형식으로 간단히 작성합니다(물론 XML 등 다른 형식으로도 가능). 이는 간단한 요구 사항에 충분합니다. 물론 .NET을 사용하여 직접 작업하는 것도 매우 간단합니다. Excel 파일. 참조할 수 있는 예제가 많이 있습니다.