/// <summary>
/// 导出
/// </summary>
/// <param name="table">数据表</param>
/// <param name="SheetName">工作簿名称</param>
/// <param name="reportName">报表名称</param>
public static void Output(DataTable table, string SheetName, string reportName)
{
string result = string.Empty;
try
{
HSSFWorkbook workBook = new HSSFWorkbook();
Sheet sheet = workBook.CreateSheet(SheetName); //sheet页名称
NPOI.SS.UserModel.Font font = workBook.CreateFont();
font.FontName = "微软雅黑"; font.FontHeight = ;
CellStyle style = workBook.CreateCellStyle();
style.Alignment = HorizontalAlignment.CENTER;
style.VerticalAlignment = VerticalAlignment.CENTER;
style.SetFont(font);
style.WrapText = true; Row rows = sheet.CreateRow();
rows.Height = ;
rows.CreateCell().SetCellValue(reportName); //报表名称
rows.GetCell().CellStyle = style;
sheet.AddMergedRegion(new CellRangeAddress(, , , table.Columns.Count - )); rows = sheet.CreateRow();
for (int i = ; i < table.Columns.Count; i++)
{
rows.CreateCell(i).SetCellValue(table.Columns[i].ColumnName.ToString());
rows.Sheet.SetColumnWidth(i, );
rows.GetCell(i).CellStyle = style;
}
CellStyle style2 = workBook.CreateCellStyle();
style2.Alignment = HorizontalAlignment.LEFT;
style2.VerticalAlignment = VerticalAlignment.CENTER;
style2.SetFont(font);
style2.DataFormat = HSSFDataFormat.GetBuiltinFormat("@");
//style2.WrapText = true;
int tem = ;
int sheetCount = ;
for (int j = ; j <= table.Rows.Count; j++)
{
tem++;
if (tem == )//每页最多导出60000
{
tem = ;
sheetCount++;
sheet = workBook.CreateSheet(SheetName + sheetCount);
rows = sheet.CreateRow();
for (int i = ; i < table.Columns.Count; i++)
{
rows.CreateCell(i).SetCellValue(table.Columns[i].ColumnName.ToString());
rows.Sheet.SetColumnWidth(i, );
rows.GetCell(i).CellStyle = style;
}
}
Row row = sheet.CreateRow(tem + );
for (int k = ; k < table.Columns.Count; k++)
{
row.CreateCell(k).SetCellValue(table.Rows[j - ][k].ToString());
row.GetCell(k).CellStyle = style2;
}
#region
//Row row = sheet.CreateRow(j + 1);
//for (int k = 0; k < table.Columns.Count; k++)
//{
// row.CreateCell(k).SetCellValue(table.Rows[j - 1][k].ToString());
// row.GetCell(k).CellStyle = style2;
//}
#endregion
} int maxColumn = table.Columns.Count;
//列宽自适应,只对英文和数字有效
for (int i = ; i <= maxColumn; i++)
{
sheet.AutoSizeColumn(i);
} using (MemoryStream ms = new MemoryStream())
{
workBook.Write(ms);
ms.Flush();
ms.Position = ;
workBook = null; HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";//HttpContext.Current.Response string browser = HttpContext.Current.Request.Browser.Browser.ToString();
string header = string.Empty;
if (browser == "Firefox")
{
header = string.Format("attachment; filename={0}", string.Format("{0}-{1}.xls", reportName, DateTime.Now.ToString("yyyy-MM-dd")), Encoding.UTF8).ToString();
}
else
{
header = string.Format("attachment; filename={0}", HttpUtility.UrlEncode(string.Format("{0}-{1}.xls", reportName, DateTime.Now.ToString("yyyy-MM-dd")), Encoding.UTF8)).ToString();
}
HttpContext.Current.Response.AddHeader("Content-Disposition", header);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.BinaryWrite(ms.GetBuffer());
HttpContext.Current.Response.End();
}
}
catch
{
throw new Exception("导出异常");
}
}

导出到excel的更多相关文章

  1. DataTable导出到Excel

    简单的导出到Excel中: 代码如下: using System; using System.Collections.Generic; using System.Data; using System. ...

  2. ASP.NET中GridView数据导出到Excel

    /// <summary> /// 导出按钮 /// </summary> /// <param name="sender"></para ...

  3. 【Java EE 学习 17 下】【数据库导出到Excel】【多条件查询方法】

    一.导出到Excel 1.使用DatabaseMetaData分析数据库的数据结构和相关信息. (1)测试得到所有数据库名: private static DataSource ds=DataSour ...

  4. PB的datawindow导出到excel文件(使用saveasascii)

    **********************************************************//*函数名称:uf_dwsaveas_excel功能:将数据窗口数据导出EXCEL ...

  5. 纯JS 将table表格导出到excel

    html <div > <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv ...

  6. 将页面上的内容导出到Excel

    <asp:Button ID="lkbExport" runat="server" Name="Save" Text="导出 ...

  7. asp.net教程:GridView导出到Excel或Word文件

    asp.net教程:GridView导出到Excel或Word文件</ br> 在项目中我们经常会遇到要求将一些数据导出成Excel或者Word表格的情况,比如中国移动(我是中国移动用户) ...

  8. DataGridView导出到Excel的三个方法

    #region DataGridView数据显示到Excel /// <summary> /// 打开Excel并将DataGridView控件中数据导出到Excel /// </s ...

  9. salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)

    我们都知道,报表有个功能为导出excel,但是有的时候客户需求往往标准的报表达不到,比如导出excel,其中本月修改的数据字段标红,如下图所示. 这就需要我们去写VF来实现此功能. 需求:将数据表记录 ...

  10. HTML Table导出为Excel的方法

    HTML Table导出为Excel的方法: 直接上源码 <html> <head> <meta http-equiv="Content-Type" ...

随机推荐

  1. 常用machine learning数据集

    ImageNet:非商业化的可视化大数据 截止到2015年5月1日,ImageNet数据库拥有超过1500万的图像. cifar10:10类物体识别数据集 数据集中包含60,000幅32*32图像,共 ...

  2. JSON取代XML?--JSON入门指南

    定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C# ...

  3. hadoop 学习笔记 (十) mapreduce2.0

    MapReduce的特色---不擅长的方面 >实时计算 像mysql一样,在毫秒级或者秒级内返回结果 >流式计算 Mapreduce的输入数据时静态的,不能动态变化 MapReduce自身 ...

  4. 转载:用Dreamweave cs 5.5+PhoneGap+Jquery Mobile搭建移动开发

    转载地址:http://blog.csdn.net/haha_mingg/article/details/7900221 移动设备应用开发有多难,只要学会HTML5+Javascript就可以.用Dr ...

  5. 用了OneAPM CT,宕机早知道!

    Twitter 的公司网站和移动应用在 1 月 19 日早上出现宕机,导致全球部分地区用户无法正常访问.这次宕机影响了很多用户,英国和印度用户已经无法访问 Twitter .第三方监测机构 DownD ...

  6. 介绍一个好用的软件--多个WIN远程连接

    MultiDesk v3.162015-03-16 http://www.syvik.com/multidesk/index_chs.htm MultiDesk 是一个选项卡(TAB标签)方式的远程桌 ...

  7. Android开源项目发现--- 工具类文件处理篇(持续更新)

    1.ZIP java压缩和解压库 项目地址:https://github.com/zeroturnaround/zt-zip 文档介绍:https://github.com/zeroturnaroun ...

  8. OS X Lion版 如果我忘记了我的账户密码 我该怎么办?

    来到了 mac os x lion 10.7 上. 忘记密码的朋友不会减少. 除了努力回忆和询问自己的老婆外还有其他办发不? 那是自然有的. 帐户密码很重要虽然有时候我们设置了帐户自动登陆但是如果您需 ...

  9. div+css页面居中代码

    普通div和html混写可以这样写,设置 text-align:center, margin:0px auto 最简单的方法就是 把你的body这样设置: <body style="t ...

  10. sequence使用

    SQL> create sequence seq1 minvalue 1 maxvalue 999999999999999999999999999 start with 0 increment ...