NPOI操作Excel 005:写入空Excel(Winform版)
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版)的更多相关文章
- NPOI操作Excel 004:写入空Excel(添加保存提示框)
前文说道写入excel的样例,当中保存Excle后须要添加提示框.让用户自己选择保存路径,做改动例如以下. 引用的dll等前面已经说过了, 直接看代码: protected void Btn_Writ ...
- NPOI 操作office、word、excel
下载地址为:http://npoi.codeplex.com/releases/view/616131 可以操作excel表,行,单元格内家及样式等. 使用示例: usin ...
- NPOI操作EXCEL(四)——反射机制批量导出excel文件
前面我们已经实现了反射机制进行excel表格数据的解析,既然有上传就得有下载,我们再来写一个通用的导出方法,利用反射机制实现对系统所有数据列表的筛选结果导出excel功能. 我们来构想一下这样一个画面 ...
- NPOI操作EXCEL(二)——大量不同模板时设计方式
上一篇文章介绍了一些NPOI的基础接口,我们现在就来看看具体怎么用NPOI来解析一个EXCEL. 博主现在有这么一堆excel需要解析数据入库: 当然这只是员工的简要模板,还有很多其他的模板.我们可以 ...
- C#开发中使用Npoi操作excel实例代码
C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...
- [Solution] NPOI操作Excel
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...
- Excel操作类库最常用到的4种开源项目与MS Excel类库写操作对比分析性能
4种开源Excel读写类库与MS Excel类库写操作对比 软件开发过程中,经常需要将数据保存为.xls或.xlsx文件.之前发现微软提供的Microsoft.Office.Interop.Excel ...
- .NET 通过 NPOI 操作 Excel
目录 .NET 通过 NPOI 操作 Excel 第一步:通过 NuGet 获取 NPOI 包并引入程序集 第二步:引入 NPOI 帮助类 第三步:在程序中调用相应的方法对数据进行导出导入操作 将 D ...
- 使用NPOI操作Excel文件及其日期处理
工作中经常遇到需要读取或导出Excel文件的情况,而NPOI是目前最宜用.效率最高的操作的Office(不只是Excel哟)文件的组件,使用方便,不详细说明了. Excel工作表约定:整个Excel表 ...
随机推荐
- Python9-模块1-day19
在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和Ord ...
- Python9-装饰器进阶-day12
wapers方法 def wahaha(): ''' sljfldsjflds :return: ''' print('娃哈哈') print(wahaha.__name__) #查看字符串格式的函数 ...
- (转)uibutton边框颜色
UIButton *testButton = [UIButton buttonWithType:UIButtonTypeSystem]; [testButton setFrame:CGRectMake ...
- PAT Basic 1049
1049 数列的片段和 给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1 ...
- nw335 debian sid x86-64 -- 2 驱动的方式
1 linux内核自带 2 realtek 提供的官方驱动 3 使用xp的驱动 4 第三方驱动(现在成功的,最好的方式)
- UIDatePicker 显示时间和打印时间不一样
默认是时区为0,如下格式化一下就好啦 UIDatePicker *datePiker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 100, ...
- 四、harbor实践之初识harbor
1 什么是Harbor harbor是VMware公司开源的企业级Registry项目,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服务. 2 什么是Registry Reg ...
- OSPF 一 基础
本节介绍ospf路由选择协议 为链路状态 路由选择协议 一 分类 open shortest path first 开放最短路优先 公有协议 单区域的ospf实施 运行在一个自治系 ...
- asp.net提交危险字符处理方法之一
在form表单提交前,可以在web页面,submit按钮的click事件中,使用js函数对,可能有危险字符的内容进行编码. 有3个函数可用: encodeURI() 函数可把字符串作为 URI 进行编 ...
- RHEL7网卡命名规则
systemd 和 udev 引入了一种新的网络设备命名方式:一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING).根据固件.拓扑.位置信息来设置固定名字,带来的好处是 ...