使用NPOI写入Excel数据(ASP.NET)
第一次做这个写入数据的功能,研究了下npoi的类
IWorkbook wb = new HSSFWorkbook(); //创建表
ISheet sh = wb.CreateSheet("XXX");
//设置单元的宽度
sh.SetColumnWidth(, * ); #region 合并单元格 IRow row0 = sh.CreateRow();
row0.Height = * ;
ICell icell1top0 = row0.CreateCell();
icell1top0.CellStyle = Getcellstyle(wb, stylexls.头);
icell1top0.SetCellValue(getTitle()); #endregion #region 创建问题题目
IRow row1 = sh.CreateRow();
// row1.Height = 20 * 20; ICell icell = null; ICell icell1top = row1.CreateCell();
icell1top.CellStyle = Getcellstyle(wb, stylexls.头);
icell1top.SetCellValue("姓名/问卷题目"); string sqlAll = "select * from dbo.CheckMgr where UserID=" + rqid + " order by T_Sort asc";
DataTable dtAll = SystemDAL.SQLHelper.GetTable(sqlAll);
if (dtAll != null && dtAll.Rows.Count > )
{
for (int j = ; j < dtAll.Rows.Count; j++)
{
sh.SetColumnWidth(j + , * );
//合并单元格//表头
//CellRangeAddress()该方法的参数次序是:开始行号,结束行号,开始列号,结束列号。
sh.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(, , , dtAll.Rows.Count)); string title = dtAll.Rows[j]["T_title"].ToString(); icell = row1.CreateCell(j + );
icell.SetCellValue(title);
}
}
#endregion #region 创建对应题目的答案内容
DataTable dtUser = getUserInfo();
IRow row11 = null;
for (int a = ; a < dtUser.Rows.Count; a++)//学生
{
row11 = sh.CreateRow(a + );
string user = dtUser.Rows[a]["realname"].ToString();
string id = dtUser.Rows[a]["id"].ToString();
for (int b = ; b < dtAll.Rows.Count; b++)//题目
{ //每一行的第一列//用户姓名
HSSFCell cell11 = row11.CreateCell() as HSSFCell;
cell11.SetCellValue(user); DataTable dtInfo = getAnwer(id);
if (dtInfo != null && dtInfo.Rows.Count > )
{
for (int i = ; i < dtInfo.Rows.Count; i++)
{
string key = dtInfo.Rows[b]["Ckey"].ToString();
string value = dtInfo.Rows[b]["Cvalue"].ToString();
string title = getMgrTitle(key, value);
HSSFCell cell1 = row11.CreateCell(b + ) as HSSFCell;
cell1.SetCellValue(title);
}
} }
} #endregion #region 下载Excel
Random r = new Random();
string _fileName = string.Format("{0:yyyyMMddHHmmssfff}-{1}", DateTime.Now, r.Next(, )) + ".xls";
using (MemoryStream ms = new MemoryStream())
{
wb.Write(ms);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachement;filename=" + HttpUtility.UrlEncode(_fileName, System.Text.Encoding.ASCII));
Response.AppendHeader("Content-Length", ms.Length.ToString());
Response.BinaryWrite(ms.GetBuffer());
Response.Flush();
Response.End();
}
#endregion
效果:
使用NPOI写入Excel数据(ASP.NET)的更多相关文章
- 使用NPOI读取Excel数据到DataTable
如今XML文件的存储格式大行其道,可是也不是适用于全部情况,非常多单位的数据交换还是使用Excel的形式.这就使得我们须要读取Excel内的数据.载入到程序中进行处理.可是如何有效率的读取,如何使程序 ...
- C#中NPOI操作excel之读取和写入excel数据
一.下载引用 下载需要引用的dll,即:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode.SharpZipLib.dll(office2 ...
- 使用NPOI读取Excel数据并写入SQLite
首先,我们来建一个数据库,我们就叫Hello.db(不一定是db后缀,你可以sqlite,sqlite3,db3)都可以作为识别,然后往里面建一个空的表格,如下图所示 然后建一个Excel表格,往表格 ...
- 读取Excel文件的两种方法比较 以及用NPOI写入Excel
1. 采用NPOI方式,只需引用NPOI.dll,但目前最高只能到2.4.0版. 缺点:只支持.xls,不支持.xlsx格式.github上的2.4.1版支持.xlsx,但总提示缺ICSharpCod ...
- 读取、写入excel数据
在实际项目中,不可避免的会操作excel表格.一直以来都是读取excel表格,可今天为了写入excel表格,可是煞费苦心,终于完成,记录下来以便后续使用. 1.读取excel表格的数据 读取excel ...
- 按键精灵如何调用Excel及按键精灵写入Excel数据的方法教程---入门自动操作表格
首先来建立一个新的Excel文档,在桌面上点击右键,选择[新建]-[Excel工作表],命名为[新手学员]. 现在这个新Excel文档是空白的,我们接下来会通过按键精灵的脚本来打开并写入一些数据.打开 ...
- 【xlwings1】多线程写入excel数据
#!/ufr/bin/env python # -*- coding:utf-8 -*- import xlwings as xw import queue import threading impo ...
- NPOI 导出Excel 数据方式
使用NPOI的库进行Excel导出操作 公共帮助类: using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System; using S ...
- 基于NPOI的Excel数据导入
从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...
随机推荐
- js获取浏览器宽高
IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.d ...
- [C#7] 1.Tuples(元组)
1. 老版本代码 class Program { static void Main(string[] args) { var fullName = GetFullName(); Console.Wri ...
- iOS实现视频和图片的上传
关于iOS如何实现视频和图片的上传, 我们先理清下思路 思路: #1. 如何获取图片? #2. 如何获取视频? #3. 如何把图片存到缓存路径中? #4. 如何把视频存到缓存路径中? #5. 如何上传 ...
- 咖啡师之路:第一日一杯Espresso
代码敲累了.产品要发布了.熬夜啊加班啊. 精神完全不在状态. 咋办--- 咋办--- 咋办---! 来一杯Espresso浓缩咖啡.各位码农,码神们的必备良品! 咖啡每天要2-3杯,不管是速溶还是现磨 ...
- ajax删除数据(不跳转页面)
以前我们讲的删除是利用嵌入php代码,跳转到另一个页面,从而降低了删除速度,但我们今天讲的利用ajax不仅可以达到不跳页面快速删除,并且能添加特效来美化页面. AJAX = 异步 JavaScript ...
- maven新建的项目,不自动引入依赖包
1.检查repository的目录是不是纯英文. 2.重新下载一次repository. 如果解决了问题,那么原因就是前面在加载repository的时候,因为断网导致了下载的包有误,无法被ecl ...
- 模拟Struts2框架Action的实现
1.具体项目结构如下:
- wemall doraemon中Android app商城系统工具集合类,包含各种程序中用到的静态方法
wemall doraemon中Android app商城系统工具集合类,包含各种程序中用到的静态方法,可用于其他商城或者系统的编程参考 package cn.zzu.edu.wemall.utils ...
- html、css、js实现轮播图
2017-03-13 今天把轮播图的知识1过了一下,写了一个比较简单的轮播图,给大家参考一下. 查看具体的效果点击这个链接 : http://gjhnstxu.me/%E8%BD%AE%E6%92%A ...
- 从 Spring 2.5 开始就可以使用注解来配置依赖注入,而不是采用 XML 来描述一个 bean。
1.在 XML 注入之前进行注解注入,因此后者可以被前者重写. 2.在默认情况下注解在 Spring 容器中不打开,需要配置启动. <beans xmlns="http://www.s ...