/// <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. 【关于JavaScript】常见表单用户名、密码不能为空

    在论坛等系统的用户注册功能中,如果用户忘记填写必填信息,如用户名.密码等,浏览器会弹出警告框,提示用户当前有未填信息. 这个典型的应用就是通过JavaScript实现的.如图所示是一个简单的用户注册页 ...

  2. Jqgrid动态拖拽

    //注册事件 jQuery("#list1").jqGrid('setGridParam', { gridComplete : function() { $("#_emp ...

  3. Web-Scale-IT 到底是啥?

    Gartner 对 2015 年 10 大 IT 趋势的预测中有一个词条为:Web Scale IT.我们跟随 Matthias Ankli 来了解一下究竟什么是 Web Scale IT.本文译自 ...

  4. 李洪强iOS开发之-环信02_iOS SDK 介绍及导入

    李洪强iOS开发之-环信02_iOS SDK 介绍及导入 iOS SDK 介绍及导入 iOS SDK 介绍 环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架.包括以下几个部分: SD ...

  5. UE编辑器加载格式化代码插件astyle

    UE 的格式化功能不强,自带的astyle版本陈旧,一般采用开源工具astyle来实现代码格式化. 1. 首先下载最新的astyle,因为ue自带的astyle版本太老,不支持空格.中文名等. 2. ...

  6. win7 下与mac虚拟机的共享文件的建立

    1. 确保针对Mac虚拟机的VMware Tools的安装 加载进入系统后,在mac里可看到安装和卸载vmware tools的两个图标(点开vmware tools磁盘),点安装的就可以了. 2. ...

  7. 14.5.5.2 Deadlock Detection and Rollback Deadlock 检测和回滚

    14.5.5.2 Deadlock Detection and Rollback Deadlock 检测和回滚 InnoDB 自动检测事务死锁和回滚一个事务 InnoDB 尝试挑选小的事务来回滚,事务 ...

  8. wpf 资源的重用

    资源的利用 1) Window.Resource <Window.Resource> <ImageBrush x:Key="TitleBrush" TileMod ...

  9. BZOJ3715: [PA2014]Lustra

    3715: [PA2014]Lustra Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 237  Solved: 149[Submit][Status ...

  10. 连接MySQL数据库得到错误“Unable to find the requested .Net Framework Data Provider”

      Registering DbProviderFactories Each .NET Framework data provider that supports a factory-based cl ...