NOPI导出Excel 

     /// <summary>
/// 导出的方法 Excel样式
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
public static byte[] ExportToExcelMultipleSheet(DataSet ds)
{
HSSFWorkbook hssfworkbook;
hssfworkbook = new HSSFWorkbook();
ISheet sheet1 = hssfworkbook.CreateSheet(ds.Tables[].TableName);
List<NPOI.SS.UserModel.ISheet> sheetList = new List<NPOI.SS.UserModel.ISheet>();
sheetList.Add(sheet1); for (int i = ; i < ds.Tables.Count; i++)
{
ISheet sheet = hssfworkbook.CreateSheet(ds.Tables[i].TableName);
sheetList.Add(sheet);
}
LargeDataExportMultipleSheet(hssfworkbook, sheetList, ds);
MemoryStream file = new MemoryStream();
hssfworkbook.Write(file);
file.Close();
return file.ToArray();
} /// <summary>
/// 数据大于65536时使用
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <summary>
/// 数据大于65536时使用
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static byte[] ExportToExcel(DataTable dt)
{
DataColumnCollection str = dt.Columns;
if (str.Count == ) return null;
HSSFWorkbook hssfworkbook;
hssfworkbook = new HSSFWorkbook();
ISheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
List<NPOI.SS.UserModel.ISheet> sheetList = new List<NPOI.SS.UserModel.ISheet>();
sheetList.Add(sheet1); int rows = dt.Rows.Count + ;
int p = rows % == ? rows / : (rows / ) + ;
for (int i = ; i < p; i++)
{
ISheet sheet = hssfworkbook.CreateSheet("sheet" + (i + ).ToString());
sheetList.Add(sheet);
}
LargeDataExport(hssfworkbook, sheetList, dt);
MemoryStream file = new MemoryStream();
hssfworkbook.Write(file);
file.Close();
return file.ToArray();
} private static void LargeDataExport(NPOI.HSSF.UserModel.HSSFWorkbook hssfworkbook, List<NPOI.SS.UserModel.ISheet> sheetCollection, DataTable dt)
{
DataColumnCollection str = dt.Columns; for (int i = ; i < sheetCollection.Count; i++)
{
ISheet sheet1 = sheetCollection[i]; if (i == )
{
IRow headerRow = sheet1.CreateRow();
for (int m = , len = str.Count; m < len; m++)
{
ICell curCell = headerRow.CreateCell(m);
headerRow.Height = * ;
ICellStyle style = hssfworkbook.CreateCellStyle();
style.FillPattern = FillPattern.SolidForeground;
style.FillForegroundColor = HSSFColor.Grey25Percent.LightOrange.Index;
IFont font = hssfworkbook.CreateFont();
font.FontHeightInPoints = ;
font.Color = HSSFColor.White.Index; //HSSFColor.WHITE.index;
style.SetFont(font);
curCell.CellStyle = style;
curCell.SetCellValue(str[m].ToString());
sheet1.SetColumnWidth(m, * );
}
} for (int j = i * ; j < (i + ) * ; j++)
{
if (j > dt.Rows.Count - )
break;
IRow row = sheet1.CreateRow(j - * i + );
row.Height = * ; for (int k = ; k < dt.Columns.Count; k++)
{
ICell rowCell = row.CreateCell(k);
rowCell.SetCellValue(dt.Rows[j][k].ToString());
}
}
}
} =====================
113 调用方法:    /// <summary>
/// 将数据导出到Excel中
/// </summary>
/// <returns></returns>
public FileResult TXDebtExportExcel()
{ DataTable dt=new DataTable(); dt =数据源;     //创建Excel文件的对象
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
System.IO.MemoryStream ms = new System.IO.MemoryStream(); NPOIExcelHelper n = new NPOIExcelHelper(); byte[] fileArr = null;
try
{
fileArr = NPOIExcelHelper.ExportToExcel(dt); //括号内的参数为数据源
}
catch (Exception ex)
{
tempLog.Info(string.Format("用户:{0} 导出 数据 出现异常:{1}", userRealName, ex.Message));
}
string fileName = "数据" + System.DateTime.Now.ToString("yyyyMMddhhssmm");
tempLog.Info(string.Format("用户:{0}导出数据成功!", userRealName)); //记录日志
return File(fileArr, "application/vnd.ms-excel", fileName + ".xls");
}

NOPI 下载地址 http://npoi.codeplex.com/releases/

NOPI导出Excel的更多相关文章

  1. NOPI导出Excel 自定义列名

    NOPI 做Excel 导出确实很方便 ,但是一直在用没好好研究. 在网上没找到自定义Columns的方法 ,于是乎自己就在原来的方法上简单地改改. 想用的童鞋们可以直接拿去用! /// 数据大于65 ...

  2. NOPI 导出excel 通用方法

    public static byte[] ExportExcel<T>(Dictionary<string, string> columnsHeader, List<T& ...

  3. NOPI 导出 Excel 2007

    代码: public static void ThisTo<T>( List<T> source, string[] colums, Func<T, object[]&g ...

  4. asp.net mvc4 easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL

    效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID ,) primary key, use ...

  5. 导出Excel解决方案之一NOPI

    一.概要 导出Excel这个功能相信很多人都做过,但是实现这个功能解决方案有好几种,今天我未大家介绍一种比较新的,其实也不新了- -!它叫NPOI,可以完美操作EXCEl的导入和导出操作,让我们一起看 ...

  6. NOPI导入导出EXCEL

    一.简介 1. 什么是NPOI NPOI,顾名思义,就是POI的.NET版本.那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97 ...

  7. winfrom 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中

    1.通过NUGET管理器下载nopi,在引入命令空间 using System; using System.Collections.Generic; using System.Text; using ...

  8. 基于C#语言MVC框架NPOI控件导出Excel表数据

    控件bin文件下载地址:https://download.csdn.net/download/u012949335/10610726@{ ViewBag.Title = "dcxx" ...

  9. WinForm 使用 NPOI 2.2.1从datatable导出Excel

    最新的NOPI应该是2.3了,但在官网上还是2.2.1. 也是第一次使用NPOI来导出Excel文件. 在写的时候搜不到2.2.1的教程,搜了一个2.2.0的教程. 不过也没什么问题,NPOI是真的方 ...

随机推荐

  1. Service的基本组成

    Service与Activity的最大区别就是一有界面,一个没有界面. 如果某些程序操作很消耗时间,那么可以将这些程序定义在Service之中,这样就可以完成程序的后台运行, 其实Service就是一 ...

  2. Android App开之标注切图

    身为一个android开发狗,真是艰辛啊,适配不好做,Rom特性不好搞,连切图有时候都得自己上啊,设计师MM都不敢去惹呢,新技能Get开始. 其实,都是小case了,我有度娘和谷哥! 因为,有了psd ...

  3. 如何在Eclipse中开发并调试自己的插件(或者说如何将自己的代码插件化)

    Setting up Eclipse to create and debug plugins for ImageJ 最近在做一个关于卫星遥感全链路仿真的项目,由于项目是基于ImageJ开发,而Imag ...

  4. git 克隆本地仓库

    如果要从本地仓库克隆到另一个地方使用如下命令 git clone d:/SourceRepository d:/DestinationRepository d:/SourceRepository:本地 ...

  5. linux可执行文件目录的区别

    /bin./sbin./usr/bin./usr/sbin目录的区别 在linux下我们经常用到的四个应用程序的目录是/bin./sbin./usr/bin./usr/sbin .而四者存放的文件一般 ...

  6. mysql--外键(froeign key)

    如果一个实体的某个字段指向另一个实体的主键,就称为外键被指向的实体,称之为主实体(主表),也叫父实体(父表).负责指向的实体,称之为从实体(从表),也叫子实体(子表) 作用:用于约束处于关系内的实体增 ...

  7. Android 自带 camera 详解

    在本文中 需要考虑的问题 概述 Manifest声明 使用内置的摄像头应用程序 捕获图像的intent 捕获视频的intent 接收摄像头intent的结果 创建摄像头应用程序 检测摄像头硬件 访问摄 ...

  8. 页面类跳转Demo

    package baidumapsdk.demo; import android.app.Activity; import android.content.BroadcastReceiver; imp ...

  9. phpStrom添加插件:php文档生成(phpDocumentor)

    1. 依次打开:Files => Settings => External Tools => +(add) 2. 填写信息:name:phpDoc; group:PHP插件; des ...

  10. css3之border-color

    -moz-border-top-colors:上边框-moz-border-right-colors:右边框-moz-border-bottom-colors:下边框-moz-border-left- ...