前文写了一个BS版本号的导出Excel的样例(http://blog.csdn.net/yysyangyangyangshan/article/details/47904119)。对于CS版在保存的地方有少许修改。直接看代码例如以下:
   
      private void button1_Click(object sender, EventArgs e)
{
//要保存的内容。此处用代码生成的内容,而在实际中能够是数据库读取的,
//亦或是页面输入的内容 DataTable dt = new DataTable(); dt.Columns.Add("序号"); dt.Columns.Add("姓名"); dt.Columns.Add("年龄"); dt.Columns.Add("职位"); for (int i = 0; i < 5; i++)
{
DataRow row = dt.NewRow(); row["序号"] = i + 1; row["姓名"] = "Test" + i; row["年龄"] = 25 + i; row["职位"] = i % 2 == 0 ? "project师" : "经理"; dt.Rows.Add(row);
}
//为了更好的看怎样使用NPOI。此处显示两行标题。
//显示标题能够看怎样合并单元格
string mainTitle = "主标题"; string secondTitle = "副标题"; //保存的Excel路径,文件名称用guid生成
string fileIndex = System.AppDomain.CurrentDomain.BaseDirectory; string tempExcel = fileIndex + @"\ExcelFile\{0}.xls"; tempExcel = string.Format(tempExcel, System.Guid.NewGuid()); int rowIndex = 0; //操作Excel的几个主要对象。此处声明
HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.CreateSheet(); //row0和row1是两行标题
HSSFRow row0 = sheet.CreateRow(rowIndex); HSSFCell cell0 = row0.CreateCell(0); cell0.SetCellValue(mainTitle); HSSFCellStyle style = workbook.CreateCellStyle(); style.Alignment = CellHorizontalAlignment.CENTER; HSSFFont font = workbook.CreateFont(); font.Boldweight = short.MaxValue; style.SetFont(font); cell0.CellStyle = style; //此处合并单元格
sheet.AddMergedRegion(new NPOI.HSSF.Util.CellRangeAddress(rowIndex, rowIndex, 0, 5)); rowIndex++; HSSFRow row1 = sheet.CreateRow(rowIndex); HSSFCell cell1 = row1.CreateCell(0); cell1.SetCellValue(secondTitle); cell1.CellStyle = style; sheet.AddMergedRegion(new NPOI.HSSF.Util.CellRangeAddress(rowIndex, rowIndex, 0, 5)); //由于列名已经指定。占一行
rowIndex++; //这一行显示表头
HSSFRow row2 = sheet.CreateRow(rowIndex); int row2cellIndex = 0; foreach (DataColumn col in dt.Columns)
{
HSSFCell cell = row2.CreateCell(row2cellIndex); cell.SetCellValue(col.ColumnName.ToString()); row2cellIndex++;
} rowIndex++; //datatable的内容
for (int i = 0; i < dt.Rows.Count; i++)
{
HSSFRow row = sheet.CreateRow(rowIndex); foreach (DataColumn col in dt.Columns)
{
row.CreateCell(col.Ordinal).SetCellValue(dt.Rows[i][col].ToString()); } rowIndex++;
} //使用文件流保存
MemoryStream ms = new MemoryStream(); workbook.Write(ms); ms.Flush(); ms.Position = 0; workbook = null; sheet = null; FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = "请选择文件路径";
if (dialog.ShowDialog() == DialogResult.OK)
{
string saveFile = dialog.SelectedPath+@"\TestExcel.xls"; using (FileStream fs = new FileStream(tempExcel, FileMode.Create, FileAccess.ReadWrite))
{
ms.WriteTo(fs);
} File.Copy(tempExcel, saveFile, true); MessageBox.Show("导出成功。");
} if (File.Exists(tempExcel))
{
File.Delete(tempExcel);
} ms.Close();
}

使用保存对话框进行保存:

         FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = "请选择文件路径";
if (dialog.ShowDialog() == DialogResult.OK)
{
string saveFile = dialog.SelectedPath+@"\TestExcel.xls"; using (FileStream fs = new FileStream(tempExcel, FileMode.Create, FileAccess.ReadWrite))
{
ms.WriteTo(fs);
} File.Copy(tempExcel, saveFile, true); MessageBox.Show("导出成功!");
}

这样在窗体中也能够实现导出Excel。
project下载:http://download.csdn.net/detail/yysyangyangyangshan/9039017

NPOI操作Excel 005:写入空Excel(Winform版)的更多相关文章

  1. NPOI操作Excel 004:写入空Excel(添加保存提示框)

    前文说道写入excel的样例,当中保存Excle后须要添加提示框.让用户自己选择保存路径,做改动例如以下. 引用的dll等前面已经说过了, 直接看代码: protected void Btn_Writ ...

  2. NPOI 操作office、word、excel

    下载地址为:http://npoi.codeplex.com/releases/view/616131 可以操作excel表,行,单元格内家及样式等.   使用示例:             usin ...

  3. NPOI操作EXCEL(四)——反射机制批量导出excel文件

    前面我们已经实现了反射机制进行excel表格数据的解析,既然有上传就得有下载,我们再来写一个通用的导出方法,利用反射机制实现对系统所有数据列表的筛选结果导出excel功能. 我们来构想一下这样一个画面 ...

  4. NPOI操作EXCEL(二)——大量不同模板时设计方式

    上一篇文章介绍了一些NPOI的基础接口,我们现在就来看看具体怎么用NPOI来解析一个EXCEL. 博主现在有这么一堆excel需要解析数据入库: 当然这只是员工的简要模板,还有很多其他的模板.我们可以 ...

  5. C#开发中使用Npoi操作excel实例代码

    C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...

  6. [Solution] NPOI操作Excel

    NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...

  7. Excel操作类库最常用到的4种开源项目与MS Excel类库写操作对比分析性能

    4种开源Excel读写类库与MS Excel类库写操作对比 软件开发过程中,经常需要将数据保存为.xls或.xlsx文件.之前发现微软提供的Microsoft.Office.Interop.Excel ...

  8. .NET 通过 NPOI 操作 Excel

    目录 .NET 通过 NPOI 操作 Excel 第一步:通过 NuGet 获取 NPOI 包并引入程序集 第二步:引入 NPOI 帮助类 第三步:在程序中调用相应的方法对数据进行导出导入操作 将 D ...

  9. 使用NPOI操作Excel文件及其日期处理

    工作中经常遇到需要读取或导出Excel文件的情况,而NPOI是目前最宜用.效率最高的操作的Office(不只是Excel哟)文件的组件,使用方便,不详细说明了. Excel工作表约定:整个Excel表 ...

随机推荐

  1. The North American Invitational Programming Contest 2018 E. Prefix Free Code

    Consider nn initial strings of lower case letters, where no initial string is a prefix of any other ...

  2. 【MySQL】Got fatal error 1236原因和解决方法

    一 前言  MySQL 的主从复制作为一项高可用特性,用于将主库的数据同步到从库,在维护主从复制数据库集群的时候,作为专职的MySQL DBA,笔者相信大多数人都会遇到“Got fatal error ...

  3. [WPF自定义控件库]使用WindowChrome的问题

    1. 前言 上一篇文章介绍了使用WindowChrome自定义Window,实际使用下来总有各种各样的问题,这些问题大部分都不影响使用,可能正是因为不影响使用所以一直没得到修复(也有可能别人根本不觉得 ...

  4. SQLAlchemy常用操作

    Models 只是配置和使用比较简单,因为他是Django自带的ORM框架,也正是因为是Django原生的,所以兼容性远远不如SQLAlchemy 真正算得上全面的ORM框架必然是我们的SQLAlch ...

  5. 15,re正则表达式

    判断手机号是否合法. phone_number = input('请输入手机号:') if re.match('^(13|14|15|18)[0-9]{9}$',phone_number): prin ...

  6. unittest跳过测试和预期失败

    在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest提供了这些需求的装饰器. unittest.skip(reason) 无条 ...

  7. pytorch中的math operation: torch.bmm()

    torch.bmm(batch1, batch2, out=None) → Tensor Performs a batch matrix-matrix product of matrices stor ...

  8. 【Kubernetes】离线业务:Job与CronJob

    Deployment.StatefulSet和DaemonSet这三个编排概念编排的对象主要都是在线业务(Long Running Task,这些应用一旦运行起来,除非出错或者停止,它的容器进程会一直 ...

  9. rabbitmq php 学习

    参考文档:http://www.cnblogs.com/phpinfo/p/4104551...http://blog.csdn.net/historyasamirror/ar... 依赖包安装 yu ...

  10. 【Luogu】P3627抢掠计划(缩点最短路)

    题目链接在此 有环当然一定尽量走环,这是搞缩点的人都知道的常识. 建了新图之后搞点权SPFA跑最长路.枚举每个酒吧选择最大值. 发现我的博客写的越来越水了 #include<cstdio> ...