导出Excel

来源:互联网 发布:java spring mvc面试题 编辑:程序博客网 时间:2024/06/16 00:09

调用我的这个方法吧!很好! 很强大!
传入个DataTable,就将你的数据导出:

        /// <summary>
        /// 将数据写入到流当中
        /// </summary>
        /// <param name="tblSchema">填充当前Datagrid的DataTable对象</param>
        public void CreateStreamCSV(DataTable tblSchema)
        {
            StringBuilder Str = new StringBuilder();
            char c = ',';

            StringWriter sw = new StringWriter();
            for (int i = 0; i < tblSchema.Columns.Count; i++)
            {
                Str.Append(tblSchema.Columns[i].Caption + c);
            }
            Str.Append("\r\n");
            for (int i = 0; i < tblSchema.Rows.Count; i++)
            {
                for (int j = 0; j < tblSchema.Columns.Count; j++)
                {
                        if (tblSchema.Rows[i][j].ToString().ToUpper().Equals("TRUE"))
                            Str.Append("是" + c);
                        else if (tblSchema.Rows[i][j].ToString().ToUpper().Equals("FALSE"))
                            Str.Append("否" + c);
                        else if(tblSchema.Rows[i][j].ToString().IndexOf("0:00")!=-1)//判断是否是日期,true则取得短日期格式
                            Str.Append(Convert.ToDateTime(tblSchema.Rows[i][j].ToString()).ToShortDateString() + c);
                        else
                            Str.Append(tblSchema.Rows[i][j].ToString() + c);
                }
                Str.Append("\r\n");
            }
            sw.Write(Str);
            sw.Close();
            string dataTime = (System.DateTime.Now.GetDateTimeFormats('s')[0].ToString().Substring(0,10) + System.DateTime.Now.TimeOfDay.ToString()).Replace(":", "");
            dataTime = dataTime.Replace("-","");
            dataTime = dataTime.Replace(".","");
            dataTime = dataTime.Replace("_","");
            dataTime = dataTime.Substring(0, 17);
            string Filename = dataTime +SetRadomNum();
            System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;   filename=" + Filename + ".csv");
            System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";
            System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            System.Web.HttpContext.Current.Response.Write(sw);
            sw.Flush();
            System.Web.HttpContext.Current.Response.End();
        }
0 0