最新的NOPI应该是2.3了,但在官网上还是2.2.1。

也是第一次使用NPOI来导出Excel文件。

在写的时候搜不到2.2.1的教程,搜了一个2.2.0的教程。

不过也没什么问题,NPOI是真的方便简单。

不多说,放代码

            IWorkbook excel = new HSSFWorkbook();//创建.xls文件
ISheet sheet = excel.CreateSheet("sheet1"); //创建sheet DataTable datatable = (DataTable)dataGridView.DataSource;//获取数据源datatable IRow row = sheet.CreateRow();//创建行对象,填充表头
foreach (DataColumn column in datatable.Columns)
{
row.CreateCell().SetCellValue("供应商编号");
row.CreateCell().SetCellValue("供应商名称");
row.CreateCell().SetCellValue("供应商联系方式");
row.CreateCell().SetCellValue("供应商地址");
row.CreateCell().SetCellValue("供应商税号");
row.CreateCell().SetCellValue("供应商初期应付款");
row.CreateCell().SetCellValue("供应商分类");
row.CreateCell().SetCellValue("供应商分类编号");
} //填充内容,j从1开始,屏蔽掉第一列,循环读取
for (int i = ; i < datatable.Rows.Count; i++)
{
row = sheet.CreateRow(i + );
for (int j = ; j < datatable.Columns.Count; j++)
{
row.CreateCell(j-).SetCellValue(datatable.Rows[i][j].ToString());
sheet.AutoSizeColumn(j);
}
} //写入文件
string DesktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
FileStream xlsfile = new FileStream(DesktopPath + @"\供应商信息Excel" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls", FileMode.Create);
excel.Write(xlsfile);
xlsfile.Close(); MessageBox.Show("Excel文件已导出到桌面","提示");

因为我的第一列是一个内码值,要将他屏蔽掉,

所以在循环填充数据的时候,初始化 j=1,但在之后的列数中,这样会导致空出一列,所以再使用j-1。

其实也可以通过操作 datatable 来屏蔽掉这一列。

WinForm 使用 NPOI 2.2.1从datatable导出Excel的更多相关文章

  1. asp.net DataTable导出Excel 自定义列名

    1.添加引用NPOI.dll 2.cs文件头部添加 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.IO; 3.代码如 ...

  2. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续3篇-导出时动态生成多Sheet EXCEL)

    ExcelUtility 类库经过我(梦在旅途)近期不断的优化与新增功能,现已基本趋向稳定,功能上也基本可以满足绝大部份的EXCEL导出需求,该类库已在我们公司大型ERP系统全面使用,效果不错,今天应 ...

  3. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)

    自ExcelUtility类推出以来,经过项目中的实际使用与不断完善,现在又做了许多的优化并增加了许多的功能,本篇不再讲述原理,直接贴出示例代码以及相关的模板.结果图,以便大家快速掌握,另外这些示例说 ...

  4. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续篇)

    上周六我发表的文章<分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility>受到了大家的热烈支持与推荐,再此表示感谢,该ExcelUtility ...

  5. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility

    1. ExcelUtility功能:  1.将数据导出到EXCEL(支持XLS,XLSX,支持多种类型模板,支持列宽自适应)  类名:ExcelUtility. Export  2.将EXCEL ...

  6. Datatable导出Excel

    ; IRow headerRow = sheet.CreateRow(); ; ; ; iRowIndex++; } ; i < icolIndex; i++) { sheet.AutoSize ...

  7. c# Datatable导出Excel

    using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; ...

  8. C# DataTable导出EXCEL后身份证、银行卡号等长数字信息显示乱码解决

    在DataTable导出EXCEL后发现有些格式显示有问题,比如身份证.银行卡号等大于11位的数字显示为科学计数法.13681-1等 带中划线的两段数字显示为日期格式等. 处理方法如下: public ...

  9. 【转】C# DataTable 导出 Excel 进阶 多行表头、合并单元格、中文文件名乱码

    本文原创地址:http://blog.csdn.net/ranbolwb/article/details/8083983 ,转载请保留本行. 本例子是上一篇 DataTable 导出 Excel 的进 ...

随机推荐

  1. Oracle新建数据库,并导入dmp文件

    1:安装Oracle及新建数据库 Oracle 11g安装图解 http://www.cnblogs.com/qianyaoyuan/archive/2013/05/05/3060471.html h ...

  2. 关于Python编码问题小记

    Python编码问题小记: 引子: 最近在复习redis,当我在获取redis的key的时候,redis 存储英文和汉字下面这个样子的,我知道汉字是用16进制的UTF-8编码了,然后突然很想搞清楚字符 ...

  3. spring-boot-CommandLineRunner

    在项目服务启动完成后就去加载一些数据 @Component public class MyStartupRunner1 implements CommandLineRunner { @Override ...

  4. 用jquery实现toast的原理

    function toast(mess){ var str='<div class="mess"><span></span></div&g ...

  5. imperva 更改web界面的密码

    通过SSH作为用户根登录到MX(或通过另一个用户并提升) 运行命令“su oracle” //首先切换到oracle用户 sqlplus secure/(密码)   /用此命令登录到数据库     s ...

  6. 打包egg

    scrapyd-deploy -p chahao -v 1.0 --build-egg chahao.egg

  7. 【不知道是啥的NOIP模拟赛】网络入侵

    题意是这样的: 给你一棵树,每个边有一个初始的0/1边权.你希望把它弄成一个给定的样子. 你每次可以选一条树链取反,然后问你最少要操作几次. ----------------------------- ...

  8. C/C++杂记:NULL与0的区别、nullptr的来历

    某些时候,我们需要将指针赋值为空指针,以防止野指针.   有人喜欢使用NULL作为空指针常量使用,例如:int* p = NULL;. 也有人直接使用0值作为空指针常量,例如:int* p = 0;. ...

  9. Scrapy官网程序执行示例

    Windows 10家庭中文版本,Python 3.6.4,Scrapy 1.5.0, Scrapy已经安装很久了,前面也看了不少Scrapy的资料,自己尝试使其抓取微博的数据时,居然连登录页面(首页 ...

  10. Linux sudo 配置

    1.配置sudo权限 sudo配置信息保存在 /etc/sudoers 文件中,可以使用vi修改.但使用vi修改需要给root用户设置权限,可以使用 visudo 直接修改. visudo 复制这行将 ...