Asp.net 내 보 내기 Excel(2)
구체 적 인 원 리 는: 먼저 DataTable 의 열 이름 을 읽 은 다음 DataTable 줄 값 을 반복 해서 읽 습 니 다. 그리고 내 보 낼 인 코딩,내 보 낼 형식 을 설정 합 니 다. 마지막 으로 StringWriter 대상 을 출력 하면 됩 니 다. 이 내 보 내기 는 파일 을 브 라 우 저 에 직접 파일 흐름 으로 출력 하 는 것 입 니 다.
private StringWriter GetStringWriter(DataTable dt)
{
StringWriter sw = new StringWriter();
//
foreach (DataColumn dc in dt.Columns)
sw.Write(dc.ColumnName + "\t");
//
//
sw.Write(sw.NewLine);
if (dt != null)
{
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
sw.Write(dr[i].ToString() + "\t");
}
sw.Write(sw.NewLine);
}
}
sw.Close();
return sw;
}
protected void ExcelImport(DataTable dt, string ExportFileName)
{
StringWriter sw = GetStringWriter(dt);
//
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//
string fileName = HttpUtility.UrlEncode (ExportFileName, System.Text.Encoding.UTF8);
//
string str = "attachment;filename=" + fileName + ".xls";
// ,
HttpContext.Current.Response.AppendHeader("Content-Disposition", str);//http
HttpContext.Current.Response.ContentType = "application/ms-excel";
this.Page.EnableViewState = false;
Response.Write(sw);
Response.End();
}
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = new SelectCourseManager().SelectByCollegeAndProperty(ddlCourseProperty.Text, ddlCollege.SelectedValue);
if (dt.Rows.Count == 0)
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascriopt' defer>alert(' , ');</script>");
else
{
// Excel
ExcelImport(dt, " ");
}
}
Excel 을 내 보 낼 때 가장 관건 적 인 것 은 인 코딩 문제 입 니 다.서로 다른 형식 으로 Excel 인 코딩 을 내 보 내 는 형식 이 다 릅 니 다.그렇지 않 으 면 내 보 낸 Excel 파일 은 중국어 로 어 지 러 운 코드 를 표시 합 니 다.DataTable 에서 Excel 을 내 보 낼 때 현재 출력 된 인 코딩 스타일 은 중국어 간 체 GB 2312 입 니 다.
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
내 보 낸 파일 이름:UTF 8 인 코딩
string fileName = HttpUtility.UrlEncode (ExportFileName, System.Text.Encoding.UTF8);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
localStorage에 객체를 추가하는 방법은 무엇입니까?이 노트에서는 localStorage에 객체를 삽입하는 방법을 보여드리겠습니다. 경우에 따라 로컬 스토리지 또는 세션 스토리지에 데이터를 개체로 저장해야 할 수 있습니다. 어떻게 이것을 달성할 수 있습니까? 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.