一般来说,都是在程序里面根据上一次的查询条件,再查一次,然后组装成Excel。如何导入数据至Excel文件 C#.net 

解决方案 »

  1.   

    比较简单的一个示例,较能说明问题,要改动的地方很少:
    http://www.cnblogs.com/zhangliyu/archive/2009/07/07/1518763.html
      

  2.   

    绑定数据后把数据放入Session中,导出时读取Session里的东西
      

  3.   

    gridview导出全部内容可以,隐藏也可以,我想导出的excel是列的顺序上,第一列显示工资等?如果导成txt可以控制导出的先后顺序。比如循环gridview每一行导出。
      

  4.   

    这是导出数据集,先获取一个DataSet数据集,进行导出。可以自由变换显示顺序 protected void btOutDate_Click(object sender, EventArgs e)
            { 
                gvMoneyLog.AllowPaging = false;
                DataSet ds =这里是你获取一个DataSet数据集;
                 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                {
                System.IO.StringWriter sw = new System.IO.StringWriter();
                System.Text.StringBuilder builder = new System.Text.StringBuilder();
                sw.WriteLine("记录时间,角色名称");//这里是要显示的标头名称,用逗号分割
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    builder = new System.Text.StringBuilder();
                    builder.Append(dr["logtime"].ToString());
                    builder.Append(",");
                    builder.Append(dr["charguid"].ToString());
                    ....
                    ....
                    ....
                    sw.WriteLine(builder.ToString());
                }
                sw.Close();
                string filename = Server.UrlPathEncode(DateTime.Now.ToString().Replace(" ", "").Replace("-", "").Replace(":", "") + ".csv");
                Response.Buffer = false;
                Response.Charset = "GB2312";
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename);
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                Response.ContentType = "application/ms-excel";
                EnableViewState = false;
                Response.Write(sw);
                Response.End();
    }
      

  5.   

    参考
    也可以将数据导出EXCEL
    /// <summary> 
        /// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流 
        /// </summary> 
        /// <param name="dtData">要导出的数据源</param> 
        public static void DataTable1Excel(System.Data.DataTable dtData)
        {
            System.Web.UI.WebControls.GridView gvExport = null;
            // 当前对话 
            System.Web.HttpContext curContext = System.Web.HttpContext.Current;
            // IO用于导出并返回excel文件 
            System.IO.StringWriter strWriter = null;
            System.Web.UI.HtmlTextWriter htmlWriter = null;        if (dtData != null)
            {
                // 设置编码和附件格式 
                curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                curContext.Response.Charset = "utf-8";            // 导出excel文件 
                strWriter = new System.IO.StringWriter();
                htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
                // 为了解决gvData中可能进行了分页的情况,需要重新定义一个无分页的GridView 
                gvExport = new System.Web.UI.WebControls.GridView();
                gvExport.DataSource = dtData.DefaultView;
                gvExport.AllowPaging = false;
                gvExport.DataBind();            // 返回客户端 
                gvExport.RenderControl(htmlWriter);
                curContext.Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />" + strWriter.ToString());
                curContext.Response.End();
            }
        }
          /// <summary>
        /// 直接输出Excel
        /// </summary>
        /// <param name="dtData"></param>
        public static void DataTable2Excel(System.Data.DataTable dtData)
        {
              System.Web.UI.WebControls.DataGrid dgExport = null;
          // 当前对话
          System.Web.HttpContext curContext = System.Web.HttpContext.Current;
          // IO用于导出并返回excel文件
          System.IO.StringWriter strWriter = null;
          System.Web.UI.HtmlTextWriter htmlWriter = null;      if (dtData != null)
          {
            // 设置编码和附件格式
            curContext.Response.ContentType = "application/vnd.ms-excel";
            curContext.Response.ContentEncoding =System.Text.Encoding.UTF8;
            curContext.Response.Charset = "";
                     
            // 导出excel文件
            strWriter = new System.IO.StringWriter();
            htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);        // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
            dgExport = new System.Web.UI.WebControls.DataGrid();          
            dgExport.DataSource = dtData.DefaultView;
            dgExport.AllowPaging = false;
            dgExport.DataBind();        // 返回客户端
            dgExport.RenderControl(htmlWriter);  
            curContext.Response.Write(strWriter.ToString());
            curContext.Response.End();
          }
        }
      

  6.   

    [Quote=引用 8 楼 xiaomingtage 的回复:]
      

  7.   

    6楼请问:能直接保存成*.xls么?我存成*.xls文件总是提示先转化的格式?
      

  8.   

    或者说是真正、标准格式的excel文件。
      

  9.   

    直接导出,好用://导出EXCEL
        protected void btnExcel_Click(object sender, EventArgs e)
        {
            Export("application/ms-excel", "工资表.xls");
        }
        private void Export(string FileType, string FileName)
        {
            Response.Charset = "GB2312";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
            Response.ContentType = "application / excel";
            this.EnableViewState = false;
            StringWriter tw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(tw);        this.GridView1.Columns[0].Visible = false;
            this.GridView1.Columns[1].Visible = false;
         this.GridView1.Columns[3].Visible = false;
         this.GridView1.Columns[4].Visible = false;
         this.GridView1.Columns[5].Visible = false;
         this.GridView1.Columns[6].Visible = false;        GridView1.RenderControl(hw);
            Response.Write(tw.ToString());
            Response.End();        this.GridView1.Columns[0].Visible = false;
            this.GridView1.Columns[1].Visible = false;
         this.GridView1.Columns[3].Visible = false;
         this.GridView1.Columns[4].Visible = false;
         this.GridView1.Columns[5].Visible = false;
         this.GridView1.Columns[6].Visible = false;
        }    public override void VerifyRenderingInServerForm(Control control)
        {    }
      

  10.   

    http://dotnet.aspx.cc/file/Export-Gridview-To-Excel-With-Multi-Sheet.aspx看看这个
      

  11.   

    先用sql语句做好要导出的格式.然后直接导出
    /// <summary> 
        /// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流 
        /// </summary> 
        /// <param name="dtData">要导出的数据源</param> 
        public static void DataTable1Excel(System.Data.DataTable dtData)
        {
            System.Web.UI.WebControls.GridView gvExport = null;
            // 当前对话 
            System.Web.HttpContext curContext = System.Web.HttpContext.Current;
            // IO用于导出并返回excel文件 
            System.IO.StringWriter strWriter = null;
            System.Web.UI.HtmlTextWriter htmlWriter = null;        if (dtData != null)
            {
                // 设置编码和附件格式 
                curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                curContext.Response.Charset = "utf-8";            // 导出excel文件 
                strWriter = new System.IO.StringWriter();
                htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
                // 为了解决gvData中可能进行了分页的情况,需要重新定义一个无分页的GridView 
                gvExport = new System.Web.UI.WebControls.GridView();
                gvExport.DataSource = dtData.DefaultView;
                gvExport.AllowPaging = false;
                gvExport.DataBind();            // 返回客户端 
                gvExport.RenderControl(htmlWriter);
                curContext.Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />" + strWriter.ToString());
                curContext.Response.End();
            }
        }
      

  12.   

    可以通过NPOI来操作Excel文件
    c#导出Excel