我想做到点击一个按钮,然后导出N个Excel文件,请问怎么才能做到?不需要导出一个文件,分N个sheet的那种。
有答案马上结贴!
谢谢

解决方案 »

  1.   

    你可以每一个文件放在一个iframe里面输出,否则你只能下载一个。或者打包成一个下载
      

  2.   

    例子<%@ Page Language="C#" EnableViewState="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
      protected void Button1_Click(object sender, EventArgs e)
      {
        for (int i = 0; i < 6; i++)
        {
          Literal1.Text += "<iframe style='display:none' src='exportExcel.aspx?file=" + i.ToString() + ".xls'></iframe>";
        }
      }
    </script>
    <body>
      <form id="form1" runat="server">
      <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="导出6个文件" />
      <asp:Literal ID="Literal1" runat="server"></asp:Literal>
      </form>
    </body>每个exportExcel.aspx导出单个文件,这个就不用写了吧
      

  3.   

    ASP.NET office组件可以做到。
      

  4.   

    我正好做了这么一个功能,逻辑代码我就不贴出来了,下面贴下主要操作excel的代码:
     Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();//这个就是最主要的excel类,分页都是从这个类的子类
    Workbook workbook = xlApp.Workbooks.Add(XlSheetType.xlWorksheet);
     worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);//worksheet就是页,你需要分多少页就执行多少次这句.
    逻辑你自己写,比如说你现在需要10页,那一开始New一个excel类,然后得到workbook,然后写个循环
    if(int i=0;i<10;i++)
    {
     worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);//这里分页就可以了
    }
    最后导出就是操作excel类的代码
     xlApp.Application.ActiveWorkbook.SaveCopyAs(excel的文件名);
      

  5.   

    貌似这个做法在firefox下可以,但是IE9就不行,还是只弹出一个保存提示