当前位置: 代码迷 >> ASP.NET >> 导出规则的EXCEL文件并下载,该如何解决
  详细解决方案

导出规则的EXCEL文件并下载,该如何解决

热度:2658   发布时间:2013-02-25 00:00:00.0
导出规则的EXCEL文件并下载
我用EXCEL组件导出了标准的EXCEL文件 请问怎么在导出完这个文件的同事弹出下载框让用户下载到本地?
C# code
//// <summary>        /// 导出 Excel 文件        /// </summary>        /// <param name="ds">要导出的DataSet</param>        /// <param name="strExcelFileName">要导出的文件名</param>        public static void ExportExcel(DataSet ds, string strExcelFileName)        {            object objOpt = Missing.Value;            Application excel = new Application();            excel.Visible = true;            _Workbook wkb = excel.Workbooks.Add(objOpt);            _Worksheet wks = (_Worksheet)wkb.ActiveSheet;            wks.Visible = XlSheetVisibility.xlSheetVisible;            int rowIndex = 1;            int colIndex = 0;            System.Data.DataTable table = ds.Tables[0];            foreach (DataColumn col in table.Columns)            {                colIndex++;                excel.Cells[1, colIndex] = col.ColumnName;            }            foreach (DataRow row in table.Rows)            {                rowIndex++;                colIndex = 0;                foreach (DataColumn col in table.Columns)                {                    colIndex++;                    excel.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();                }            }            //excel.Sheets[0] = "sss";            wkb.SaveAs(strExcelFileName, objOpt, null, null, false, false, XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);            wkb.Close(false, objOpt, objOpt);            excel.Quit();        }        #endregion


一般的导出后都带有格式 在用户修改完后无法进行导入操作 所以我希望导出的文件是规则的EXCEL文件不带格式

------解决方案--------------------------------------------------------
C# code
public void OutPutExcel()        {            //定义文档类型、字符编码             Response.Clear();           Response.Buffer= true;           Response.Charset="GB2312";            //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开          //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc    .xls    .txt   .htm           Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");           Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");          //Response.ContentType指定文件类型 可以为application/ms-excel、application/ms-word、application/ms-txt、application/ms-html 或其他浏览器可直接支持文档           Response.ContentType = "application/ms-excel";          this.EnableViewState = false;            // 定义一个输入流           System.IO.StringWriter oStringWriter = new System.IO.StringWriter();           System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);            this.RenderControl(oHtmlTextWriter);          //this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件           Response.Write(oStringWriter.ToString());           Response.End();         }
------解决方案--------------------------------------------------------
C# code
StringBuilder sb = new StringBuilder();        foreach (DataRow dr in ds.Tables[0].Rows)        {            Content = dr["Site"].ToString() + "," + dr["Title"].ToString() + "," + dr["Company"].ToString() + "," + dr["Location"].ToString() + "," + dr["PublishTime"].ToString() + "," + dr["Trade"].ToString();            sb.AppendLine(Content);        }        Response.Clear();        Response.Buffer = false;        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");        Response.ContentType = "application/octet-stream";        Response.AppendHeader("content-disposition", "attachment;filename=" + FileName);        Response.Write(sb.ToString());        Response.Flush();        Response.End();
  相关解决方案