if (this.testDataSet1.TestTable.Rows.Count <= )
{
MessageBox.Show("没有找到相关的数据!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
DialogResult isOK = new DialogResult();
IWorkbook workbook = null;
ISheet sheet = null; //导出文件对话框
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "Excel 2003兼容格式|*.xls|Excel 2007文件格式|*.xlsx"; //设置文件过滤器
saveFile.FileName = dateTimePicker2.Value.ToString("yyyy-MM-dd") + "至" + dateTimePicker3.Value.ToString("yyyy-MM-dd") + "统计表";
isOK = saveFile.ShowDialog();
if (isOK != DialogResult.OK || String.IsNullOrEmpty(saveFile.FileName))
{
return;
}
else
{
try
{
int rowIndex = ; //行号
workbook = CreateIWorkBook(@saveFile.FileName.ToString()); //创建Excel
FileStream fs = new FileStream(saveFile.FileName, FileMode.OpenOrCreate); //创建文件流打开或创建
sheet = workbook.CreateSheet("Sheet1"); //创建sheet
IRow row = null;
ICell cell = null;
//从数据集中读数据
int rowCount = testDataSet1.TestTable.Rows.Count; //rowCount 行数
int colCount = ;//colCount 列数
//创建表头
string[] header = { "单号", "名称", "日期", "金额", "实付金额", "销款金额", "付款方式", "银行", "单据类型", "单据号码", "备注" }; //列名
string[] col = { "DanHao", "MingCheng", "RiQi", "JinE", "ShiFu", "XiaoKuan", "FangShi", "YinHang", "LeiXing", "DanJuHao", "BeiZhu" }; //数据集列
row = sheet.CreateRow(rowIndex);
cell = row.CreateCell();
cell.SetCellValue("Excel文件名");
row = sheet.CreateRow(++rowIndex); //rowIndex = 1;
//输出列名
for (int colIndex = ; colIndex < colCount; ++colIndex)
{
cell = row.CreateCell(colIndex);
cell.SetCellValue(header[colIndex]);
}
//int rowIndex = 2;
foreach (DataRow dr in testDataSet1.TestTable.Rows)
// for (; rowIndex < rowCount+2;++rowIndex )
{
row = sheet.CreateRow(++rowIndex);
for (int colIndex = ; colIndex < ; ++colIndex)
{
cell = row.CreateCell(colIndex);
//cell.SetCellValue(testDataSet1.TestTable[rowIndex-2][col[colIndex]].ToString());
if (dr[col[colIndex]].GetType().Equals(typeof(System.DateTime))) //日期格式
{
cell.SetCellValue(Convert.ToDateTime(dr[col[colIndex]]).ToString("yyyy-MM-dd"));
}
else if (dr[col[colIndex]].GetType().Equals(typeof(System.Double))) //Double
{
cell.SetCellValue(Convert.ToDouble(dr[col[colIndex]]));
}
else if (dr[col[colIndex]].GetType().Equals(typeof(System.Int32))) //Int
{
cell.SetCellValue(Convert.ToInt32(dr[col[colIndex]]));
}
else
{
cell.SetCellValue(dr[col[colIndex]].ToString().Trim());
}
}
//++rowIndex;
}
workbook.Write(fs); //写入文件流
fs.Close(); //关闭文件流
MessageBox.Show("文件 '" + saveFile.FileName + "' 保存成功!");
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
}

NPOI 导出Excel部分的更多相关文章

  1. NPOI导出Excel (C#) 踩坑 之--The maximum column width for an individual cell is 255 charaters

    /******************************************************************* * 版权所有: * 类 名 称:ExcelHelper * 作 ...

  2. Asp.Net 使用Npoi导出Excel

    引言 使用Npoi导出Excel 服务器可以不装任何office组件,昨天在做一个导出时用到Npoi导出Excel,而且所导Excel也符合规范,打开时不会有任何文件损坏之类的提示.但是在做导入时还是 ...

  3. NPOI导出EXCEL 打印设置分页及打印标题

    在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置  sheet1.FitToPage = false; 而 ...

  4. .NET NPOI导出Excel详解

    NPOI,顾名思义,就是POI的.NET版本.那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office的文件. 支持的文件格式包括xls, ...

  5. NPOI导出Excel(含有超过65335的处理情况)

    NPOI导出Excel的网上有很多,正好自己遇到就学习并总结了一下: 首先说明几点: 1.Excel2003及一下:后缀xls,单个sheet最大行数为65335 Excel2007 单个sheet ...

  6. [转]NPOI导出EXCEL 打印设置分页及打印标题

    本文转自:http://www.cnblogs.com/Gyoung/p/4483475.html 在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方 ...

  7. 分享使用NPOI导出Excel树状结构的数据,如部门用户菜单权限

    大家都知道使用NPOI导出Excel格式数据 很简单,网上一搜,到处都有示例代码. 因为工作的关系,经常会有处理各种数据库数据的场景,其中处理Excel 数据导出,以备客户人员确认数据,场景很常见. ...

  8. 用NPOI导出Excel

    用NPOI导出Excel public void ProcessRequest(HttpContext context) { context.Response.ContentType = " ...

  9. NPOI导出Excel示例

    摘要:使用开源程序NPOI导出Excel示例.NPOI首页地址:http://npoi.codeplex.com/,NPOI示例博客:http://tonyqus.sinaapp.com/. 示例编写 ...

  10. NPOI导出excel(带图片)

    近期项目中用到Excel导出功能,之前都是用普通的office组件导出的方法,今天尝试用下NPOI,故作此文以备日后查阅. 1.NPOI官网http://npoi.codeplex.com/,下载最新 ...

随机推荐

  1. WEB学习笔记12-高可读性的HTML之如何正确设计表单

    网站中的用户登录.注册.用户调查等都是通过页面中的表单提交到网站服务器的.假设要实现让用户设置个人信息的一个表单. 该表格为两栏布局,第一栏中的文本左对齐,第二栏的表单控件右对齐,构成了最容易实现的表 ...

  2. 为什么 EXISTS(NOT EXIST) 与 JOIN(LEFT JOIN) 的性能会比 IN(NOT IN) 好

    前言 网络上有大量的资料提及将 IN 改成 JOIN 或者 exist,然后修改完成之后确实变快了,可是为什么会变快呢?IN.EXIST.JOIN 在 MySQL 中的实现逻辑如何理解呢?本文也是比较 ...

  3. 爱因斯坦求和约定 (Einstein summation convention)

  4. ietester下ie6.0停止工作问题的修复

    工作时经常用到ie6.0来测试兼容性,不得不吐槽下ie6.0的过分老旧,页面编写完成后,最痛苦的莫过于在ie6.0下测试兼容性. 今天满怀基情的打算开始了一天的工作,却在刚要开始之初,被同事的iete ...

  5. React生命周期简单详细理解

    前言 学习React,生命周期很重要,我们了解完生命周期的各个组件,对写高性能组件会有很大的帮助. Ract生命周期 React 生命周期分为三种状态 1. 初始化 2.更新 3.销毁 初始化 1.g ...

  6. react-redux性能优化之reselect

    在React-redux深入理解中,我们知道了 react-redux 是如何将 React 和 Redux 进行连接的,今天来说一下其中存在的性能问题以及改进的方式. 一.存在的性能问题 以 Red ...

  7. 集合或数组转成String字符串

    1.将集合转成String字符串 String s=""; for (int i = 0; i < numList.size(); i++) { if (s=="& ...

  8. CSS Sprites ——雪碧图的使用方法

    首先解释下CSS Sprites是什么:有称CSS精灵,有称CSS雪碧的,无论叫什么,他的作用就是把网页上很多小图标放到一张图片里面,然后通过CSS里面的background-position来控制每 ...

  9. B/S与C/S的优缺点

     B/S:Browser/Server,即浏览器/服务器架构,一般用于网站: 优点:无需安装,不需要更新客户端: 缺点:交互性差,安全性低. C/S:Client/Server,即客户端/服务器端架构 ...

  10. 寒假作业 pta编程总结3

    实验代码: 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕 ...