。。。
/// <summary>
/// 大于65535时导出压缩包
/// </summary>
private void getExcelFilesZip()
{
List<DataTable> dtList = createDTList();
MemoryStream ms = new MemoryStream();
ZipOutputStream zos = new ZipOutputStream(ms);
DateTime datetime = DateTime.Now;
for (int indexDt = 0; indexDt < dtList.Count; indexDt++)
{
s_DgToExcel(dtList[indexDt], ref zos, "Excel_" + indexDt.ToString() + ".xls");
}
zos.Finish();
zos.Close();
//压缩
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=Excel" + datetime.ToString("yyyyMMddHHmmss") + ".zip");
Response.Clear();
Response.BinaryWrite(ms.ToArray());
Response.End();
}
private void s_DgToExcel(DataTable Dt,ref ZipOutputStream zos,string fileName)
{
GridView gv = new GridView();
gv.AllowPaging = false;
gv.PageIndex = 0;
gv.DataSource = Dt;
gv.DataBind();
//设置datagrid界面样式,即保存给excel的样式
gv.SelectedRowStyle.BackColor = Color.White;
gv.AlternatingRowStyle.BackColor = Color.White;
gv.RowStyle.BackColor = Color.White;
gv.HeaderStyle.BackColor = Color.Silver;
gv.HeaderStyle.ForeColor = Color.Black;
gv.BorderColor = Color.Black;
EnableViewState = false;
System.IO.StringWriter stwExcel = new System.IO.StringWriter();
HtmlTextWriter htwExcel = new System.Web.UI.HtmlTextWriter(stwExcel);
htwExcel.AddAttribute(HtmlTextWriterAttribute.Title, "charset=gb2312");
htwExcel.Write("<META>");
gv.RenderControl(htwExcel);
byte[] unicodeBytes = (System.Text.Encoding.GetEncoding("GB2312")).GetBytes(stwExcel.ToString());
if (zos != null)
{
ZipEntry entry = new ZipEntry(fileName);
zos.PutNextEntry(entry);
zos.Write(unicodeBytes, 0, unicodeBytes.Length);
}
htwExcel.Close();
stwExcel.Close();
}