NPOI 导出Excel部分
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部分的更多相关文章
- NPOI导出Excel (C#) 踩坑 之--The maximum column width for an individual cell is 255 charaters
/******************************************************************* * 版权所有: * 类 名 称:ExcelHelper * 作 ...
- Asp.Net 使用Npoi导出Excel
引言 使用Npoi导出Excel 服务器可以不装任何office组件,昨天在做一个导出时用到Npoi导出Excel,而且所导Excel也符合规范,打开时不会有任何文件损坏之类的提示.但是在做导入时还是 ...
- NPOI导出EXCEL 打印设置分页及打印标题
在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置 sheet1.FitToPage = false; 而 ...
- .NET NPOI导出Excel详解
NPOI,顾名思义,就是POI的.NET版本.那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office的文件. 支持的文件格式包括xls, ...
- NPOI导出Excel(含有超过65335的处理情况)
NPOI导出Excel的网上有很多,正好自己遇到就学习并总结了一下: 首先说明几点: 1.Excel2003及一下:后缀xls,单个sheet最大行数为65335 Excel2007 单个sheet ...
- [转]NPOI导出EXCEL 打印设置分页及打印标题
本文转自:http://www.cnblogs.com/Gyoung/p/4483475.html 在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方 ...
- 分享使用NPOI导出Excel树状结构的数据,如部门用户菜单权限
大家都知道使用NPOI导出Excel格式数据 很简单,网上一搜,到处都有示例代码. 因为工作的关系,经常会有处理各种数据库数据的场景,其中处理Excel 数据导出,以备客户人员确认数据,场景很常见. ...
- 用NPOI导出Excel
用NPOI导出Excel public void ProcessRequest(HttpContext context) { context.Response.ContentType = " ...
- NPOI导出Excel示例
摘要:使用开源程序NPOI导出Excel示例.NPOI首页地址:http://npoi.codeplex.com/,NPOI示例博客:http://tonyqus.sinaapp.com/. 示例编写 ...
- NPOI导出excel(带图片)
近期项目中用到Excel导出功能,之前都是用普通的office组件导出的方法,今天尝试用下NPOI,故作此文以备日后查阅. 1.NPOI官网http://npoi.codeplex.com/,下载最新 ...
随机推荐
- 大数据 - hadoop基础概念 - HDFS
Hadoop之HDFS的概念及用法 1.概念介绍 Hadoop是Apache旗下的一个项目.他由HDFS.MapReduce.Hive.HBase和ZooKeeper等成员组成. HDFS是一个高度容 ...
- java中的i++与++i的区别以及除法、模的用法(基础)
java中i++与++i的区别: 例如:int i=3; (先运算再赋值)j=++i; i的值先变成4,再赋给j,j的值为4: (先赋值再运算)j=i++; 先将i的值3赋给j,j的值为3,然后i变成 ...
- [转]https://www.jianshu.com/p/06443248f4d8
eos是什么? 原文 https://www.jianshu.com/p/06443248f4d8 简介 用一句话来定义eos,即:区块链操作系统,支持在它之上构建dapp,支持智能合约.帐户.身份验 ...
- 调试利器GDB(下)
本节我们研究gdb更深层的用法: 数据断点: 可以根据变量的值来监视变量. 数据断点本质是硬件断点,数量有限. watch var_name告诉gdb我们关注var_name这个变量,如果它的值被改变 ...
- C#经典面试题及答案
1.请你说说.net 中类和结构的区别? 答:结构和类具有大体的语法,但是结构受到的限制比类多.结构不能声明默认的的构造函数,为结构的副本是编译器创建和销毁的,所以不需要默认的构造函数和析构函数,结构 ...
- mayavi与X11的一些坑总结
1. Mayavi:https://docs.enthought.com/mayavi/mayavi/ 适合渲染各种和图形有关的数据.在大批量处理数据时,一般不希望对每一个渲染好的对象都将其显示出来, ...
- Api文件
对于我们不认识的类(只限于java自带的类),我们可以百度去查一下,但是这样是嚼别人吃剩下的骨头,我们可以去查java的api文件,虽然都是英语,但是还是硬着头皮看吧,加油! 链接:https://p ...
- 选择器与I/O多路复用
Selector选择器是NIO技术中的核心组件,可以将通道注册进选择器中,其主要作用是使用1个线程来对多个通道中的已就绪通道进行选择,然后就可以对选择的通道进行数据处理,属于一对多的关系,也就是使用1 ...
- unity 常用插件 2
Advanced PlayerPrefs Window 用来管理 PlayerPrefs 数据,超好用 JsonDotNet JSON 的序列化/反序列化插件.这个插件是支持 iOS, Android ...
- layui基本使用
https://www.layui.com/doc/ 在线实例https://www.layui.com/demo/ 使用 自己实际操作 <script> layui.use(['laye ...