日期:2014-05-17  浏览次数:20392 次

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

------解决方案--------------------
例子

<%@ 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导出单个文件,这个就不用写了吧
------解决方案--------------------
ASP.NET office组件可以做到。
------解决方案--------------------
我正好做了这么一个功能,逻辑代码我就不贴出来了,下面贴下主要操作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的文件名);