Java中这个类库叫POI,C#中叫NPOI,很多从Java一直到.Net平台的类库为了区别大部分都是在前面加个N,比如Hibernate和NHibernate。

npoi下载地址

一、使用NPOI下载大致分以下步骤:

  1、创建workbook

  2、创建sheet

  3、创建row和cell

  4、填充数据

  5、设置cell的样式和字体

二、HSSFWorkbook和XSSFWorkbook 两者用法基本一样

  HSSFWorkbook 创建的是Excel2003

    HSSFSheet、HSSFCellStyle、HSSFFont等

  XSSFWorkbook 创建的是Excel2007

    XSSFSheet、XSSFCellStyle、XSSFFont等

三、行或列合并

   sheet.AddMergedRegion(new CellRangeAddress(0, 1, 0, 0)); //起始行  结束行 起始列 结束列

   sheet.GetRow(0).GetCell(0).SetCellValue("姓名");//赋值

  赋值时必须使用合并后左上角单元格的行列坐标

四、代码(以Excel2003为例):

using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;

public ActionResult Index()
{ List<string> headList = new List<string>();
headList.Add("语文");
headList.Add("数学");
headList.Add("英语");
headList.Add("政治"); List<string> nameList = new List<string>();
nameList.Add("张三");
nameList.Add("李四");
nameList.Add("王五");
nameList.Add("赵六");
nameList.Add("胜七");
nameList.Add("朱重八");
nameList.Add("九喇嘛"); MemoryStream memoryStream = new MemoryStream();
HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.CreateSheet();
//创建单元格设置对象
HSSFCellStyle cellStyle = workbook.CreateCellStyle();
//设置水平、垂直居中
cellStyle.Alignment = HSSFCellStyle.ALIGN_CENTER;
cellStyle.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
//单元格填充颜色
cellStyle.FillForegroundColor = HSSFColor.PALE_BLUE.index;
cellStyle.FillPattern = HSSFCellStyle.SOLID_FOREGROUND;
//设置边框
cellStyle.BorderBottom = HSSFCellStyle.BORDER_THIN;
cellStyle.BorderLeft = HSSFCellStyle.BORDER_THIN;
cellStyle.BorderRight = HSSFCellStyle.BORDER_THIN;
cellStyle.BorderTop = HSSFCellStyle.BORDER_THIN; //创建设置字体对象
HSSFFont font = workbook.CreateFont();
font.FontHeightInPoints = ;//设置字体大小
font.Boldweight = short.MaxValue; //加粗
font.FontName = "宋体";
cellStyle.SetFont(font); //创建Excel行和单元格
for (int i = ; i < nameList.Count + ; i++)
{
HSSFRow newRow = sheet.CreateRow(i);
for (int j = ; j <headList.Count+; j++)
{
newRow.CreateCell(j);
}
} //设置Excel表头
sheet.AddMergedRegion(new CellRangeAddress(, , , )); //起始行 结束行 起始列 结束列
sheet.GetRow().GetCell().CellStyle = cellStyle;
sheet.GetRow().GetCell().CellStyle = cellStyle;
sheet.GetRow().GetCell().SetCellValue("姓名");//姓名 sheet.AddMergedRegion(new CellRangeAddress(, , , )); //起始行 结束行 起始列 结束列
sheet.GetRow().GetCell().CellStyle = cellStyle;
sheet.GetRow().GetCell().CellStyle = cellStyle;
sheet.GetRow().GetCell().SetCellValue("课程");//课程 for (int i = ; i < headList.Count; i++)
{
sheet.GetRow().GetCell(i + ).CellStyle = cellStyle;
sheet.GetRow().GetCell(i + ).SetCellValue(headList[i]);//具体课程
} //导入数据
for (int i = ; i < nameList.Count; i++)
{
sheet.GetRow(i + ).GetCell().SetCellValue(nameList[i]);
for (int j = ; j < ; j++)
{
sheet.GetRow(i + ).GetCell(j+).SetCellValue(i*j);
}
} workbook.Write(memoryStream);
memoryStream.Seek(,SeekOrigin.Begin); Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=" + Server.UrlEncode("test.xls"));
Response.ContentType = "application/octet-stream";
Response.Charset = "gb2312";
Response.ContentEncoding = Encoding.UTF8;
Response.BinaryWrite(memoryStream.GetBuffer());
Response.Flush();
Response.End();
return new EmptyResult();
}

最后结果:

转载请注明出处!

NPOI之C#下载Excel的更多相关文章

  1. c#.net 使用NPOI导入导出标准Excel (asp.net winform csharp)

    尝试过很多Excel导入导出方法,都不太理想,无意中逛到oschina时,发现了NPOI,无需Office COM组件且不依赖Office,顿时惊为天人,怀着无比激动的心情写下此文. 曾使用过的方法 ...

  2. NPOI导出数据到Excel

    NPOI导出数据到Excel   前言 Asp.net操作Excel已经是老生长谈的事情了,可下面我说的这个NPOI操作Excel,应该是最好的方案了,没有之一,使用NPOI能够帮助开发者在没有安装微 ...

  3. ASP.NET- 使用NPOI导入导出标准Excel

    尝试过很多Excel导入导出方法,都不太理想,无意中逛到oschina时,发现了NPOI,无需Office COM组件且不依赖Office,顿时惊为天人,怀着无比激动的心情写下此文. 曾使用过的方法 ...

  4. 使用NPOI导入导出标准Excel

    尝试过很多Excel导入导出方法,都不太理想,无意中逛到oschina时,发现了NPOI,无需Office COM组件且不依赖Office,顿时惊为天人,怀着无比激动的心情写下此文. 曾使用过的方法 ...

  5. NPOI插入图片到excel指定单元格

    先看效果图 下载NPOI组件(2.0以上支持.xlsx和.xls的excel,2.0以下只支持.xls) NPOI下载官网http://npoi.codeplex.com 下载解压,里面有个dotne ...

  6. 在Asp.Net MVC中使用NPOI插件实现对Excel的操作(导入,导出,合并单元格,设置样式,输入公式)

    前言 NPOI 是 POI 项目的.NET版本,它不使用 Office COM 组件,不需要安装 Microsoft Office,目前支持 Office 2003 和 2007 版本. 1.整个Ex ...

  7. NPOI复制模板导出Excel

    本人菜鸟实习生一枚,公司给我安排了一个excel导出功能.要求如下:1.导出excel文件有样式要求:2.导出excel包含一个或多个工作表:3.功能做活(我的理解就是excel样式以后可能会变方便维 ...

  8. 360浏览器下载excel问题解决方式

    亲们有没有碰到过今天我遇到的这件事. 如果使用简单的链接.或者get方式提交的表单,去下载excel,那么360浏览器就会有问题. 问题是:它没把我用java生成的excel表格下载,而是去把我的列表 ...

  9. java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)

    使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...

随机推荐

  1. day01.2-python基础

    一. python基本数据类型及操作     1. 数字.在python中,数字的初始化方式为直接赋值.如:a = 11 a). 加法运算                              b ...

  2. CString、string、string.h的区别

    CString.string.string.h的区别   CString:CString是MFC或者ATL中的实现,是MFC里面封装的一个关于字符串处理的功能很强大的类,只有支持MFC的工程才能使用. ...

  3. Maven国内源设置阿里云地址

    Maven国内源设置 目前国外的maven源访问非常慢,作为一个Java开发者,是一件很痛苦的事,而国内的maven源,oschina已经关闭,目前最好的方式,就是使用阿里云的镜像: <mirr ...

  4. hexo博客的相关配置

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 前面两节讲解了hexo博客的搭建以及jacman主题的配置,这节主要讲解博客的一些相关配置.比如404页面,图床,自定义页面,个人网站绑定(重要的 ...

  5. [POI2007]MEG-Megalopolis 树的dfs序+树状数组维护差分 BZOJ1103

    题目描述 Byteotia has been eventually touched by globalisation, and so has Byteasar the Postman, who onc ...

  6. Adobe Fireworks CS5 | Adobe Dreamweaver CS5 | Adobe Photoshop CS5 Extended 绿色精简版最新下载地址

    下载地址可能已经不能直接下载,可以用迅雷下载试试 Adobe Photoshop CS5 简体中文绿色版 下载地址:Adobe_Photoshop_CS5_Extended.7z 此绿色版特点:1. ...

  7. python 获得毫秒级时间戳

    import time import datetime t = time.time() print (t) #原始时间数据 print (int(t)) #秒级时间戳 print (int(round ...

  8. JavaWeb学习笔记(六)—— Cookie&Session

    一.会话技术简介 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程 ...

  9. python学习之路---day21--模块和栈

    模块和栈 一:计数模块collections 基础版本: s="qwewsfdfjiehrfqweqweqwqewq" dic={} for el in s: dic[el]=di ...

  10. IntersectionObserver

    创建对象 var io = new IntersectionObserver(callback, option); IntersectionObserver是浏览器原生提供的构造函数,接受两个参数:c ...