前台代码:
<asp:ImageButton ID="imgBtnDu" runat="server" ImageUrl="~/images/dcexcel.png" OnClick="imgBtnDu_Click" />
<table cellpadding="0" cellspacing="0" border="0" class="tablesty" width="100%">
                        <tr>
                            <th class="app12">
                                序号
                            </th>
                            <th class="app11">
                                类别
                            </th>
                            <th class="app11">
                                计量单位
                            </th>
                            <th class="app11">
                                数量
                            </th>
                            <th class="app11">
                                备注
                            </th>
                        </tr>
                        <asp:Repeater ID="rptData" runat="server">
                            <ItemTemplate>
                                <tr>
                                    <td class="app3">
                                        &nbsp;<%# Eval("id")%>
                                    </td>
                                    <td class="app4">
                                        &nbsp;<%# Eval("sp_name")%>
                                    </td>
                                    <td class="app4">
                                        &nbsp;<%# Eval("sp_add")%>
                                    </td>
                                    <td class="app4">
                                        &nbsp;<%# Eval("sp_sex")%>
                                    </td>
                                    <td class="app4">
                                        &nbsp;<%# Eval("sp_phone")%>
                                    </td>
                                </tr>
                            </ItemTemplate>
                        </asp:Repeater>
                    </table>
后台代码:
  protected void imgBtnDu_Click(object sender, ImageClickEventArgs e)
        {
            DataTable dt = reportBLL.GetPassCount(txtStart.Value, txtEnd.Value);
            if (dt != null && dt.Rows.Count > 0)
            {
                dt.Columns["id"].ColumnName = "系统id";
                dt.Columns["sp_name"].ColumnName = "类别";
                dt.Columns["sp_add"].ColumnName = "计量单位";
                dt.Columns["sp_sex"].ColumnName = "数量";
                dt.Columns["sp_phone"].ColumnName = "备注";                string fileNames = "人员及车辆流量统计报表.xls"; 
                Response.Write(toExcelFromCsv(dt));
                Response.End();
     
            }
        }
出现了如下的问题。
1.导出来的时候不是以我点击的表名作为名字(人员及车辆流量统计报表.xls),而是系统自动给名(Report.xls)。
2.导出来的时候Excel里面没有标题。我要的是第一行为标题,而且标题居中。
救命

解决方案 »

  1.   

    在你的的toExcelFromCsv()  方法里面做处理   而且  你都没有吧 filename 传给toExcelFromCsv  肯定你的toExcelFromCsv  没有给你的excel取文件名称   所以就是系统给你取名字了 
      

  2.   

    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();
            }红色部分自己定义名字 也可以当参数传递进去  也可以用时间
      

  3.   

    toExcelFromCsv 估计这里面已经定义了名称。 而你有没传给他新的名称。 认真点童鞋。