第一次做这个写入数据的功能,研究了下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. [干货来袭]C#7.0新特性(VS2017可用)

    前言 微软昨天发布了新的VS 2017 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化.. 分享一下其实2016年12月就已经公布了的C#7 ...

  2. TuSDK 简易使用方法 持有图片对象方式

    TuSDK 为涂图照相应用的SDK,打包后文件大小约为5M,缺点为包比较大,且图片清晰度较差一些,优点为直接可以引用滤镜贴纸,方便易用.   使用方法如下:    1.AppDelegate.m 中加 ...

  3. ajax 实现三级联动

    ajax 实现三级联动,相当于写了一个小插件,用的时候直接拿过来用就可以了,这里我用了数据库中的chinastates表, 数据库内容很多,三级联动里的地区名称都在里面,采用的是代号副代号的方式 比如 ...

  4. Docker存储驱动之总览

    简介 本文会介绍Docker存储驱动的特性,别列出现在已经支持的存储驱动,最后,会介绍如果选型适合你的存储驱动. 可插拔的存储驱动架构 Docker的存储驱动架构是可插拔的,可以让你很方便的将适合你环 ...

  5. dfs 无向图两节点间的所有路径

    标题:风险度量 X星系的的防卫体系包含 n 个空间站.这 n 个空间站间有 m 条通信链路,构成通信网.两个空间站间可能直接通信,也可能通过其它空间站中转. 对于两个站点x和y (x != y), 如 ...

  6. Android开发使用的常见第三方框架

    1.SlidingMenu 官网:https://github.com/jfeinstein10/SlidingMenu 网友使用:http://blog.csdn.net/yangyu2012122 ...

  7. Java日期获取需求大全

    刚进公司,作为熟悉技术,为公司做了一个小的点餐系统的网站,其中大量用到了时间日期作为唯一标示或是显示设置.特总结了一下和大家分享. package com.lucis.ordering.Utils; ...

  8. ECSHOP info: Can't Connect MySQL Server(localhost:3306)!

    今天对服务器压力测试后,某个公司电脑的页面显示标题所示,别人电脑正常.故让她清理cookie.无效.重启MySQL后问题解决.

  9. 类string解析

    原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5645248.html 在涉及字符串的时候,我们可以定义字符数组或指针,其实还有一个类,专门是为字符 ...

  10. C#实现GridView导出Excel

    using System.Data;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System. ...