NPOI操作Excel 004:写入空Excel(添加保存提示框)
引用的dll等前面已经说过了,
直接看代码:
protected void Btn_WriteExcel(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 = HttpRuntime.AppDomainAppPath.ToString(); 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; using (FileStream fs = new FileStream(tempExcel, FileMode.Create, FileAccess.ReadWrite))
{
ms.WriteTo(fs);
} Response.Clear();
Response.ClearHeaders();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachent;filename=" + HttpUtility.UrlDecode(@"TestExcel.xls"));//TestExcel.xls可改动
Response.WriteFile(tempExcel, true);
Response.Flush();
Response.Close(); if (File.Exists(tempExcel))
{
File.Delete(tempExcel);
} Response.End(); ms.Close();
}
添加的是这段代码:
Response.Clear();
Response.ClearHeaders();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachent;filename=" + HttpUtility.UrlDecode(@"TestExcel.xls"));//TestExcel.xls可改动
Response.WriteFile(tempExcel, true);
Response.Flush();
Response.Close();
可实如今网页中弹出提示框保存文件。
project下载:http://download.csdn.net/detail/yysyangyangyangshan/9037569
NPOI操作Excel 004:写入空Excel(添加保存提示框)的更多相关文章
- asp.net导出excel并弹出保存提示框
asp.net导出excel并弹出保存提示框 2013-07-12 | 阅:1 转:78 | 分享 腾讯空间 人人网 开心网 新浪微博 腾讯微博 搜狐空间 推荐给朋友 举报 ...
- Arc Engine 中添加气泡提示框
一.在ArcMap中的定位操作 已知若干点的经纬度坐标,要求在地图中进行定位: 1.通过Tool >Add X Y data 定位点,注意选择地理坐标系下的wgs 1984坐标系: 2.定位后的 ...
- MFC中添加ToolTip提示框
PART 1 MFC 对话框中的 Buttton添加提示 例如我们想在一个对话框中的一个button控件添加tooltip,实现的方法如下: 1. 在该对话框的类中添加一个CToolTipCtrl类型 ...
- 在vue项目中添加全局提示框
1.写一个提示框组件:msg.vue (注明:这里用两个div的原因是成功和失败的提示不能用同一个div,因为他们可能紧接着出现,所以不能从始至终只有一个提示框在工作) 2.写一个调用此组建的js : ...
- NPOI操作Excel 005:写入空Excel(Winform版)
前文写了一个BS版本号的导出Excel的样例(http://blog.csdn.net/yysyangyangyangshan/article/details/47904119).对于CS版在保存的地 ...
- NPOI 操作office、word、excel
下载地址为:http://npoi.codeplex.com/releases/view/616131 可以操作excel表,行,单元格内家及样式等. 使用示例: usin ...
- 自己动手写jQuery插件---Tip(提示框)
对jQuery相信很多同学和我一样平时都是拿来主义,没办法,要怪只能怪jQuery太火了,各种插件基本能满足平时的要求.但是这毕竟不是长久之道,古人云:“授之以鱼,不如授之以渔”. 为了方便之前没有接 ...
- 浅谈Excel开发:九 Excel 开发中遇到的常见问题及解决方法
Excel开发过程中有时候会遇到各种奇怪的问题,下面就列出一些本人在开发中遇到的一些比较典型的问题,并给出了解决方法,希望对大家有所帮助. 一 插件调试不了以及错误导致崩溃的问题 在开发机器上,有时可 ...
- 浅谈Excel开发:三 Excel 对象模型
前一篇文章介绍了Excel中的菜单系统,在创建完菜单和工具栏之后,就要着手进行功能的开发了.不论您采用何种方式来开发Excel应用程序,了解Excel对象模型尤其重要,这些对象是您与Excel进行交互 ...
随机推荐
- 为什么要重写toString()方法
因为在System.out.println(类的对象名)时,类的对象名是个引用,如果不重写,就输出引用地址. 其实实际是这样的System.out.println(类的对象名.toString()), ...
- javascript-知识点集合
第三课.JavaScript的语法与关键字 1.JavaScript的语法 字符串.数字.布尔.数组.对象.Null.Undefined 1.js的变量区分大小写 username userName ...
- 极路由设置共享磁盘密码、跨网访问samba服务
极路由插上移动硬盘后会自动建立samba服务器,但我们没法去配置哪些盘符需要密码,这样只要在同一个wifi下的电脑都能去访问这些东西了,比较弱智.另外我还想再公司中去读写这个移动硬盘. 设置密码 首先 ...
- 黑马day15 文件上传&apche的工具包
1.肯定要导入apche的jar包 2.要使用的类的介绍.. 2.1DiskFileItemFactory public DiskFileItemFactory(int sizeThreshold, ...
- linux下面增加磁盘空间
1.先看看情况 [root@localhost tmp]# fdisk -l Disk /dev/sda: 3221 MB, 3221225472 bytes 255 heads, 63 sector ...
- jquery的clone()引发的问题,下拉框点击没有反应
此段代码是对某块元素的移位:上移.下移.对比修改前后的两段代码: 修改前: //点击移位 function move(obj,posi){ var al=$(obj).parent('li').par ...
- Django(part3)
URLConf:负责url到view的map,就是一个urls.py module,通常在project和app级别都要定义, #mysite/urls.py from django.conf.url ...
- <ItemTemp>里写判断语句
<%@ Language="C#" %> <html> <head></head> <body> <%=DateT ...
- MySQL存储过程和自定义函数、Navicat for mysql、创建存储过程和函数、调用存储过程和函数的区别
1 MySQL存储过程和函数 过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快. 1.1 存储过程 存储 ...
- 关于exsi的虚拟网络
相关术语: VM Network 默认的网络 VSwitch (默认)标准交换机 (exsi的内核中) Port groups (用来定义各个不同vlan) DVSwitch分布式交换机(exs ...