使用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.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...
随机推荐
- [干货来袭]C#7.0新特性(VS2017可用)
前言 微软昨天发布了新的VS 2017 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化.. 分享一下其实2016年12月就已经公布了的C#7 ...
- TuSDK 简易使用方法 持有图片对象方式
TuSDK 为涂图照相应用的SDK,打包后文件大小约为5M,缺点为包比较大,且图片清晰度较差一些,优点为直接可以引用滤镜贴纸,方便易用. 使用方法如下: 1.AppDelegate.m 中加 ...
- ajax 实现三级联动
ajax 实现三级联动,相当于写了一个小插件,用的时候直接拿过来用就可以了,这里我用了数据库中的chinastates表, 数据库内容很多,三级联动里的地区名称都在里面,采用的是代号副代号的方式 比如 ...
- Docker存储驱动之总览
简介 本文会介绍Docker存储驱动的特性,别列出现在已经支持的存储驱动,最后,会介绍如果选型适合你的存储驱动. 可插拔的存储驱动架构 Docker的存储驱动架构是可插拔的,可以让你很方便的将适合你环 ...
- dfs 无向图两节点间的所有路径
标题:风险度量 X星系的的防卫体系包含 n 个空间站.这 n 个空间站间有 m 条通信链路,构成通信网.两个空间站间可能直接通信,也可能通过其它空间站中转. 对于两个站点x和y (x != y), 如 ...
- Android开发使用的常见第三方框架
1.SlidingMenu 官网:https://github.com/jfeinstein10/SlidingMenu 网友使用:http://blog.csdn.net/yangyu2012122 ...
- Java日期获取需求大全
刚进公司,作为熟悉技术,为公司做了一个小的点餐系统的网站,其中大量用到了时间日期作为唯一标示或是显示设置.特总结了一下和大家分享. package com.lucis.ordering.Utils; ...
- ECSHOP info: Can't Connect MySQL Server(localhost:3306)!
今天对服务器压力测试后,某个公司电脑的页面显示标题所示,别人电脑正常.故让她清理cookie.无效.重启MySQL后问题解决.
- 类string解析
原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5645248.html 在涉及字符串的时候,我们可以定义字符数组或指针,其实还有一个类,专门是为字符 ...
- C#实现GridView导出Excel
using System.Data;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System. ...