第一次做这个写入数据的功能,研究了下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)的更多相关文章

  1. 使用NPOI读取Excel数据到DataTable

    如今XML文件的存储格式大行其道,可是也不是适用于全部情况,非常多单位的数据交换还是使用Excel的形式.这就使得我们须要读取Excel内的数据.载入到程序中进行处理.可是如何有效率的读取,如何使程序 ...

  2. C#中NPOI操作excel之读取和写入excel数据

    一.下载引用 下载需要引用的dll,即:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode.SharpZipLib.dll(office2 ...

  3. 使用NPOI读取Excel数据并写入SQLite

    首先,我们来建一个数据库,我们就叫Hello.db(不一定是db后缀,你可以sqlite,sqlite3,db3)都可以作为识别,然后往里面建一个空的表格,如下图所示 然后建一个Excel表格,往表格 ...

  4. 读取Excel文件的两种方法比较 以及用NPOI写入Excel

    1. 采用NPOI方式,只需引用NPOI.dll,但目前最高只能到2.4.0版. 缺点:只支持.xls,不支持.xlsx格式.github上的2.4.1版支持.xlsx,但总提示缺ICSharpCod ...

  5. 读取、写入excel数据

    在实际项目中,不可避免的会操作excel表格.一直以来都是读取excel表格,可今天为了写入excel表格,可是煞费苦心,终于完成,记录下来以便后续使用. 1.读取excel表格的数据 读取excel ...

  6. 按键精灵如何调用Excel及按键精灵写入Excel数据的方法教程---入门自动操作表格

    首先来建立一个新的Excel文档,在桌面上点击右键,选择[新建]-[Excel工作表],命名为[新手学员]. 现在这个新Excel文档是空白的,我们接下来会通过按键精灵的脚本来打开并写入一些数据.打开 ...

  7. 【xlwings1】多线程写入excel数据

    #!/ufr/bin/env python # -*- coding:utf-8 -*- import xlwings as xw import queue import threading impo ...

  8. NPOI 导出Excel 数据方式

    使用NPOI的库进行Excel导出操作 公共帮助类: using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System; using S ...

  9. 基于NPOI的Excel数据导入

    从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...

随机推荐

  1. SqlService 索引原理

    索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录 ...

  2. 【js】基本类型和引用类型的区别

    1.保存方式:(一脸懵逼???) 基本类型是按值访问的,可以在变量的生命周期改变它,但是它是储存在哪里的呢?在浏览器缓存吗?[执行环境中定义的所有变量和函数都存储在执行环境的变量对象里,变量对象我们编 ...

  3. 使用git部署服务器

    每回上传服务器是把我的web项目打包成war上传到服务器根目录下,总是觉得很麻烦,并且每次就算只添加或修改了一个文件,都要把整个服务器war包上传.于是我学着用git部署我的web项目 下面是详情: ...

  4. bootstrap常见类的总结

    相信大家和我一样,曾经找过bootstrap的类名定义. 无奈没有找到现成的,那我就来总结一下常见类名吧. 基础样式:btn,alert,form,table,input,select.textare ...

  5. jQuery kxbdMarquee 无缝滚动

    转:http://code.ciaoca.com/jquery/kxbdmarquee/ <marquee> 曾是 IE 下独有的一个走马灯效果的标签,其他浏览器并不兼容,于是出现了使用 ...

  6. JAVA-Servlet-过滤器知识总结

    JAVA Filter是什么呢? Servlet过滤器实际上就是一个标准的java类,这个类通过实现Filter接口获得过滤器的功能.它在jsp容器启动的时候通过web.xml配置文件被系统加载.Se ...

  7. eclipse中代码格式化组合键失效了

    因为最近在整理java笔记,发现代码格式化的组合键失效了,但其他的组合键是好着的,设置里面找了也是对着的. 最后是在输入法的设置里面发现了它,原来是快捷键冲突了.取消输入法里面 的快捷键就好了,或者改 ...

  8. IOS各种手势操作实例

    先看下效果 手势相关的介绍 IOS中手势操作一般是 UIGestureRecognizer 类的几个手势子类去实现,一般我们用到的手势就这么5种: 1.点击  UITapGestureRecogniz ...

  9. 20. Valid Parentheses - 括号匹配验证

    Description: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determin ...

  10. artemplate使用

    最近写了一个菜谱展示的网页,其中用到了artemplate模板,关于artemplate的好处就不多说了,直接上干货 1. <script src="js/template-nativ ...