最新的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. 表单验证插件-validator.js 使用教程

    做网站的时候,常常会涉及到各种表单验证.选择一款好用的表单验证插件,会降低表单验证开发的难度.在开发中,我目前使用的表单验证插件是:validator.js. validator.js 是一款轻量的表 ...

  2. MySQL防范SQL注入风险

    MySQL防范SQL注入风险 0.导读 在MySQL里,如何识别并且避免发生SQL注入风险 1.关于SQL注入 互联网很危险,信息及数据安全很重要,SQL注入是最常见的入侵手段之一,其技术门槛低.成本 ...

  3. Dream------Hadoop--Hadoop HA QJM (Quorum Journal Manager)

    In a typical HA cluster, two separate machines are configured as NameNodes. At any point in time, ex ...

  4. js原生选择class DOM元素

    document.querySelector(".demo"); querySelector() 方法返回匹配指定选择器的第一个元素.如果需要返回所有的元素,使用 querySel ...

  5. CentOS7.3下的一个iptables配置

    centos7.3默认使用的防火墙应该是firewall,而不是iptables.而我们xxmj服务器使用的是iptables防火墙.所以,在配置防火墙之前,我们需要先关闭firewall,安装ipt ...

  6. C++面试常见问题

    转载:https://zhuanlan.zhihu.com/p/34016871?utm_source=qq&utm_medium=social 1.在C++ 程序中调用被C 编译器编译后的函 ...

  7. 双机/RAC/Dataguard的区别【转】

    本文转自 双机/RAC/Dataguard的区别-jasoname-ITPUB博客 http://blog.itpub.net/22741583/viewspace-684261/ Data Guar ...

  8. Docker Compose practice

    Docker Compose 什么是 Docker-Compose? Compose 可以让用户在集群中部署分布式应用.简单的说,Docker Compose 属于一个"应用层"的 ...

  9. java 读取配置文件类

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; im ...

  10. No.3 selenium学习之路之鼠标&键盘事件

    鼠标事件 from selenium.webdriver.common.action_chains import ActionChains contest_click()  右击 double_cli ...