CSV 보고서로 내보내기

11429 단어 csv
OA를 할 때 고객은 결과를 CSV 파일로 출력해야 합니다!CSV 파일은 Excel로 열 수 있으며 행을 바꿀 수 있는 번호는 캐리지 리턴입니다.
다음은 코드가 테이블을 문자열로 변환하고 CSV가 해석할 수 있는 문자열입니다!
CSVConvert.aspx 백엔드 코드
    protected void Page_Load(object sender, EventArgs e)

    {

        DataTable dt = (DataTable)Session["Source"];

        ConvertCSV(dt, "a");

        //Response.Redirect();

    }

    /// <summary>

    ///   cvs  

    /// </summary>

    /// <param name="dt"></param>

    /// <param name="reportFileName"></param>

    private void ConvertCSV(DataTable dt, string reportFileName)

    {

        StringBuilder sBuilder = new StringBuilder("");

        //string strCSV = string.Empty;

        for (int i = 0; i < dt.Columns.Count; i++)

        {

            if (i == 0)

            {

                sBuilder = sBuilder.Append("\"").Append(dt.Columns[i].ColumnName).Append("\"");

                //strCSV += "\"" + dt.Columns[i].ColumnName + "\"";

            }

            else

            {

                sBuilder = sBuilder.Append(",\"").Append(dt.Columns[i].ColumnName).Append("\"");

                //strCSV += ",\"" + dt.Columns[i].ColumnName + "\"";

            }

        }

        sBuilder = sBuilder.Append("\r
"); //strCSV += "\r
";
for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { if (j == 0) { sBuilder = sBuilder.Append("\"").Append(ConvertObject(dt.Rows[i][j])).Append("\""); //strCSV += "\"" + ConvertObject(dt.Rows[i][j]) + "\""; } else { sBuilder = sBuilder.Append(",\"").Append(ConvertObject(dt.Rows[i][j])).Append("\""); //strCSV += ",\"" + ConvertObject(dt.Rows[i][j]) + "\""; } } sBuilder = sBuilder.Append("\r
"); //strCSV += "\r
";
} byte[] bFile = System.Text.Encoding.GetEncoding("GB2312").GetBytes(sBuilder.ToString()); Session["ReporFrom"] = bFile; Session["reporFileName"] = reportFileName; Response.Redirect("ReportForm.aspx"); //Response.Write("<script language='javascript'>window.open('ReportForm.aspx');</script>"); //Response.Write("<script language='javascript'>window.open('ReportForm.aspx');</script>"); } protected string ConvertObject(object obj) { if (obj != null) { return obj.ToString(); } return string.Empty; }

다음은 ReportForm입니다.aspx 페이지 코드
protected void Page_Load(object sender, EventArgs e)

    {

        byte[] bFile = (byte[]) Session["ReporFrom"];

        string reportFileName = Session["reporFileName"].ToString();

        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

        Response.AddHeader("Content-Disposition", "attachment; filename=" + reportFileName + ".csv");

        Response.ContentType = "application/octet-stream;charset=GB2312";

        Response.AddHeader("Content-length", bFile.Length.ToString());

        Response.BinaryWrite(bFile);

        Response.End();

        Response.Close();

        Session.Remove("ReporFrom");

        Session.Remove("reporFileName");

    }

다음은 구체적인 실례 사용법이다.
 Session["Source"] = dt;

 Response.Write("<script language='javascript'>window.open('CSVConvert.aspx');</script>");

 
 
CSV Pages Download

좋은 웹페이지 즐겨찾기