////自动换行   
            ////自动换行翻译成英文其实就是Wrap的意思,所以这里我们应该用WrapText属性,这是一个布尔属性   
            //style6.WrapText = true;   
            ////文本缩进   
            ////这是一个不太引人注意的选项,所以这里给张图出来,让大家知道是什么,缩进说白了就是文本前面的空白,我们同样可以用属性来设置,   
            ////这个属性叫做Indention。   
            //style6.Indention = 3;   
            ////文本旋转   
            ////文本方向大家一定在Excel中设置过,上图中就是调整界面,主要参数是度数,那么我们如何在NPOI中设置呢?  
            //style6.Rotation=(short)90;   
            ////以上代码是把单元格A1中的文本逆时针旋转90度   
            ///*   
            // * 请注意,这里的Rotation取值是从-90到90,而不是0-180度。   
            // * 最后别忘了把样式变量style赋给HSSFCellStyle.CellStyle,否则就前功尽弃了,呵呵!   
            // * **/   
            //#endregion   
            //#region 7.设置单元格边框   
            ////*************************************设置单元格边框******************************************   
            ////边框和其他单元格设置一样也是在HSSFCellStyle上操作的,HSSFCellStyle有2种和边框相关的属性,分别是:   
            ////边框相关属性 说明 范例    
            ////Border+方向 边框类型 BorderTop, BorderBottom,BorderLeft, BorderRight    
            ////方向+BorderColor 边框颜色 TopBorderColor,BottomBorderColor, LeftBorderColor, RightBorderColor

////其中边框类型分为以下几种:   
            ////边框范例图 对应的静态值    
            //// HSSFCellStyle.BORDER_DOTTED    
            //// HSSFCellStyle.BORDER_HAIR    
            //// HSSFCellStyle.BORDER_DASH_DOT_DOT    
            //// HSSFCellStyle.BORDER_DASH_DOT    
            //// HSSFCellStyle.BORDER_DASHED    
            //// HSSFCellStyle.BORDER_THIN    
            //// HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT    
            //// HSSFCellStyle.BORDER_SLANTED_DASH_DOT    
            //// HSSFCellStyle.BORDER_MEDIUM_DASH_DOT    
            //// HSSFCellStyle.BORDER_MEDIUM_DASHED    
            //// HSSFCellStyle.BORDER_MEDIUM    
            //// HSSFCellStyle.BORDER_THICK    
            //// HSSFCellStyle.BORDER_DOUBLE    
            ////至于颜色那就很多了,全部在HSSFColor下面,如HSSFColor.GREEN, HSSFColor.RED,都是静态实例,可以直接引用。   
            ////下面我们假设我们要把一个单元格的四周边框都设置上,可以用下面的代码:

//HSSFSheet sheet7 = hssfworkbook.CreateSheet("设置单元格边框");   
            //// Create a row and put some cells in it. Rows are 0 based.   
            //HSSFRow row7 = sheet7.CreateRow(1);   
            //// Create a cell and put a value in it.   
            //HSSFCell cell7 = row7.CreateCell(1);   
            //// Style the cell with borders all around.   
            //HSSFCellStyle style7 = hssfworkbook.CreateCellStyle();   
            //style7.BorderBottom= HSSFCellStyle.BORDER_THIN;   
            //style7.BorderLeft= HSSFCellStyle.BORDER_THIN;   
            //style7.BorderRight= HSSFCellStyle.BORDER_THIN;   
            //style7.BorderTop = HSSFCellStyle.BORDER_THIN ;   
            //cell7.CellStyle= style7;   
            ////这段代码使用了最普通的细边框,使得这个单元格看上去像块空心砖头。   
            ////注意:这里我们没有设置边框的颜色,但这不会影响最终的效果,因为Excel会用默认的黑色给边框上色。   
            ////如果要设置颜色的话,也很简单,如下:   
            //style7.BottomBorderColor = HSSFColor.GREEN.index;   
            ////以上代码将底部边框设置为绿色,要注意,不是直接把HSSFColor.GREEN赋给XXXXBorderColor属性,而是把index的值赋给它。   
            //#endregion

//#region 8.设置单元格字体   
            ////*************************************设置单元格字体******************************************   
            ////本节我们将继续使用NPOI来设置单元格格式,这一节我们主要讲如何设置“字体”。   
            ////在设置字体之前,我们首先要做的就是创建字体对象,这和创建数字格式很相似。

//HSSFFont font8 = hssfworkbook.CreateFont();   
            ////这句话会在Excel文件内部创建相应的FontRecord,所以你不用客户因为自己机器上的Excel没有相应的字体设置而导致设置丢失。

////字体在设置完成后,我们就可以把它赋给单元格样式,代码如下:   
            //HSSFSheet sheet8 = hssfworkbook.CreateSheet("设置单元格字体");   
            //HSSFRow row8 = sheet8.CreateRow(0);   
            //HSSFCell cell8 = row8.CreateCell(0);   
            //HSSFCellStyle style8 = hssfworkbook.CreateCellStyle();   
            //style8.SetFont(font8);   
            //cell8.CellStyle=style8;   
            ////这里的cell1是HSSFCell的一个实例。

////好了,下面我们就开始对字体进行设置。   
            ////字体名称

////这里的字体名称是通过HSSFFont.FontName进行设置的,至于具体的名称,只要是常用字体都可以,比如说Arial, Verdana等   
            ////,当然也可以是中文字体名,如宋体、黑体等。不过设置字体名称有个前提,那就是假设打开这个xls文件的客户机上有这种字体   
            ////,如果没有,Excel将使用默认字体。   
            ////下面就是设置字体名称为“宋体”的代码:   
            //font8.FontName = "宋体";

////字号   
            ////与字号有关的属性有两个,一个是FontHeight,一个是FontHeightInPoints。区别在于,FontHeight的值是FontHeightInPoints的20倍   
            ////,通常我们在Excel界面中看到的字号,比如说12,对应的是FontHeightInPoints的值,而FontHeight要产生12号字体的大小   
            ////,值应该是240。所以通常建议你用FontHeightInPoint属性。   
            ////如果要设置字号为12,代码就是   
            //font8.FontHeightInPoints = 12;

////字体颜色   
            ////这里可能会与CellStyle上的ForegroundColor和BackgroundColor产生混淆,其实所有的字体颜色都是在HSSFFont的实例上设置的   
            ////,CellStyle的ForegroundColor和BackgroundColor分别指背景填充色和填充图案的颜色,和文本颜色无关。   
            ////要设置字体颜色,我们可以用HSSFFont.Color属性,颜色可以通过HSSFColor获得,代码如下所示:   
            //font8.Color = HSSFColor.RED.index;   
            ////这行代码把文本设置为红色。

////下划线   
            ////通常我们所说的下划线都是单线条的,其实Excel支持好几种下划线,如下所示:   
            ////类型 对应的值    
            ////单下划线 HSSFFont.U_SINGLE    
            ////双下划线 HSSFFont.U_DOUBLE    
            ////会计用单下划线 HSSFFont.U_SINGLE_ACCOUNTING    
            ////会计用双下划线 HSSFFont.U_DOUBLE_ACCOUNTING    
            ////无下划线 HSSFFont.U_NONE    
            ////当你要设置下划线时,可以用HSSFFont.Underline属性,这是一个byte类型的值,例如   
            //font8.Underline = HSSFFont.U_SINGLE;   
            ////这行代码就是设置单下划线的代码。

////上标下标   
            ////设置这东西可以用HSSFFont.TypeOffset属性,值有以下几种:   
            ////TypeOffset的值 说明    
            ////HSSFFont.SS_SUPER 上标    
            ////HSSFFont.SS_SUB 下标    
            ////HSSFFont.SS_NONE 普通,默认值    
            ////所以如果你要上标的话,可以用下面的代码:   
            //font8.TypeOffset=HSSFFont.SS_SUPER;

////删除线   
            ////设置这东西可以用HSSFFont.IsStrikeout属性,当为true时,表示有删除线;为false则表示没有删除线。   
            //#endregion

//#region 9.设置单元格的背景和图案   
            ////*************************************设置单元格的背景和图案******************************************   
            ////在之前的教程中,我们已经提到HSSFCellStyle有两个背景颜色属性,一个叫FillBackgroundColor,另一个叫FillForegroundColor   
            ////,但其实这指的都是背景颜色,那为什么还有ForegroundColor呢?为了能够帮助大家理解,我们举一个实际的例子   
            ////,下面这个图案是Excel的一个单元格:(白线红格的网格)   
            ////线是白色的,背景是红色的。这里的线其实就是下面的Excel界面中的图案:   
            ////至于线的颜色则是图案颜色,即白色。   
            ////所以以上单元格如果要用NPOI来设置就可以用以下代码完成:   
            ////fill background   
            //HSSFSheet sheet9 = hssfworkbook.CreateSheet("设置单元格的背景和图案");   
            //HSSFCellStyle style9 = hssfworkbook.CreateCellStyle();   
            //style9.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.WHITE.index;   
            //style9.FillPattern = HSSFCellStyle.SQUARES;   
            //style9.FillBackgroundColor = NPOI.HSSF.Util.HSSFColor.RED.index;   
            //sheet9.CreateRow(7).CreateCell(0).CellStyle = style9;   
            ////现在是不是清楚一些了,这里的FillPattern就图案样式,所有的枚举值都是HSSFCellStyle的常量;FillForegroundColor就是图案的颜色   
            ////,而FillBackgroundColor则是背景的颜色,即红色。   
            //#endregion

//#region 10.设置单元格的宽度和高度   
            ////*************************************设置单元格的宽度和高度******************************************   
            ////在Excel中,单元格的宽度其实就是列的宽度,因为Excel假设这一列的单元格的宽度肯定一致。所以要设置单元格的宽度   
            ////,我们就得从列的宽度下手,HSSFSheet有个方法叫SetColumnWidth,共有两个参数:一个是列的索引(从0开始),一个是宽度。   
            ////现在假设你要设置B列的宽度,就可以用下面的代码:   
            ////HSSFWorkbook hssfworkbook = new HSSFWorkbook();   
            //HSSFSheet sheet10 = hssfworkbook.CreateSheet("设置单元格的宽度和高度");   
            //sheet10.SetColumnWidth(1, 100 * 256);   
            ////这里你会发现一个有趣的现象,SetColumnWidth的第二个参数要乘以256,这是怎么回事呢?其实,这个参数的单位是1/256个字符宽度   
            ////,也就是说,这里是把B列的宽度设置为了100个字符。   
            ////刚才说的是如何设置,那如何去读取一个列的宽度呢?直接用GetColumnWidth方法,这个方法只有一个参数,那就是列的索引号。如下所示:   
            //int col1width = sheet10.GetColumnWidth(1);   
            ////说完宽度,我们来说高度,在Excel中,每一行的高度也是要求一致的,所以设置单元格的高度,其实就是设置行的高度   
            ////,所以相关的属性也应该在HSSFRow上,它就是HSSFRow.Height和HeightInPoints,这两个属性的区别在于HeightInPoints的单位是点   
            ////,而Height的单位是1/20个点,所以Height的值永远是HeightInPoints的20倍。   
            ////要设置第一行的高度,可以用如下代码:   
            //sheet10.CreateRow(0).Height = 200*20;   
            ////或者   
            //sheet10.CreateRow(0).HeightInPoints = 200;   
            ////如果要获得某一行的行高,可以直接拿HSSFRow.Height属性的返回值。   
            ////你可能觉得一行一行设置行高或者一列一列设置列宽很麻烦,那你可以考虑使用HSSFSheet.DefaultColumnWidth   
            ////、HSSFSheet.DefaultRowHeight和HSSFSheet.DefaultRowHeightInPoints属性。   
            ////一旦设置了这些属性,如果某一行或者某一列没有设置宽度,就会使用默认宽度或高度。代码如下:   
            //sheet10.DefaultColumnWidth=100*256;   
            //sheet10.DefaultRowHeight=30*20;   
            //#endregion

////把HSSFWorkbook实例写入文件   
            //FileStream file = new FileStream(Server.MapPath("test.xls"), FileMode.Create);   
            //hssfworkbook.Write(file);   
            //file.Close();

//*************************************基于模板******************************************   
            //read the template via FileStream, it is suggested to use FileAccess.Read to prevent file lock.   
            //book1.xls is an Excel-2007-generated file, so some new unknown BIFF records are added.    
            FileStream file11 = new FileStream(Server.MapPath("PayMain.xls"), FileMode.Open, FileAccess.Read);

HSSFWorkbook hssfworkbook11 = new HSSFWorkbook(file11);   
            HSSFSheet sheet11 = hssfworkbook11.GetSheet("Sheet2");   
            HSSFCellStyle style11 = hssfworkbook11.CreateCellStyle();   
            style11.BorderBottom = HSSFCellStyle.BORDER_THIN;   
            style11.BorderLeft = HSSFCellStyle.BORDER_THIN;   
            style11.BorderRight = HSSFCellStyle.BORDER_THIN;   
            style11.BorderTop = HSSFCellStyle.BORDER_THIN;   
            HSSFRow row11;   
            for (int i = 0; i < dt.Rows.Count; i++)   
            {   
                row11 = sheet11.CreateRow(7 + i);   
                for (int j = 0; j < 6; j++)   
                {   
                    HSSFCell cell11 = row11.CreateCell(j);   
                    cell11.SetCellValue(dt.Rows[i][j].ToString());   
                    cell11.CellStyle = style11;   
                }   
            }

row11 = sheet11.CreateRow(dt.Rows.Count + 7);   
            HSSFCell cell11_ = row11.CreateCell(0);   
            cell11_.SetCellValue("合计:");   
            cell11_ = row11.CreateCell(3);   
            cell11_.SetCellValue("建表人:");   
            //HSSFRow row11 = sheet11.CreateRow(7);   
            //HSSFCell cell10 = row11.CreateCell(0);   
            //HSSFCell cell11 = row11.CreateCell(1);   
            //HSSFCell cell12 = row11.CreateCell(2);   
            //HSSFCell cell13 = row11.CreateCell(3);   
            //HSSFCell cell14 = row11.CreateCell(4);   
            //HSSFCell cell15 = row11.CreateCell(5);   
            //cell10.SetCellValue("tessssss");   
            //cell11.SetCellValue("teffffff");   
            //cell12.SetCellValue("tegggggsss");   
            //cell13.SetCellValue("tesssssfwefsss");   
            //cell14.SetCellValue("tesssssfwefsss");   
            //cell15.SetCellValue("tesssssfwefsss");   
            //sheet11.GetRow(9).GetCell(0).SetCellValue(300);   
            //sheet11.GetRow(10).GetCell(1).SetCellValue(500050);   
            //sheet11.GetRow(11).GetCell(1).SetCellValue(8000);   
            //sheet11.GetRow(12).GetCell(1).SetCellValue(110);   
            //sheet11.GetRow(13).GetCell(1).SetCellValue(100);   
            //sheet11.GetRow(14).GetCell(1).SetCellValue(200);   
            //sheet11.GetRow(15).GetCell(1).SetCellValue(210);   
            //sheet11.GetRow(16).GetCell(1).SetCellValue(2300);   
            //sheet11.GetRow(17).GetCell(1).SetCellValue(240);   
            //sheet11.GetRow(18).GetCell(1).SetCellValue(180123);   
            //sheet11.GetRow(19).GetCell(1).SetCellValue(150);

//Force excel to recalculate all the formula while open   
            Response.ContentType = "application/vnd.ms-excel";   
            Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", "T3"));   
            Response.Clear();

DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();   
            dsi.Company = "NPOI Team";   
            hssfworkbook.DocumentSummaryInformation = dsi;

////create a entry of SummaryInformation   
            SummaryInformation si = PropertySetFactory.CreateSummaryInformation();   
            si.Subject = "NPOI SDK Example";   
            hssfworkbook11.SummaryInformation = si;

MemoryStream file = new MemoryStream();   
            hssfworkbook11.Write(file);   
            Response.BinaryWrite(file.GetBuffer());   
            Response.End();

//sheet11.ForceFormulaRecalculation = true;    
            //FileStream file111 = new FileStream(Server.MapPath("T2.xls"), FileMode.Create);    
            //hssfworkbook11.Write(file111);   
            //file111.Close();

npoi的基本操作的更多相关文章

  1. NPOI基本操作XLS

    using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using Sys ...

  2. NPOI的一些基本操作

    1,创建一个Excel //创建一个工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); //创建一个页 ISheet sheet = workbook.Cr ...

  3. NPOI 2.0 教程

    NPOI2.0帮助官方地址 目录 1. 前言 1.1 NPOI 2.0与NPOI 1.x的区别 1.2 NPOI 2.0模块简介 1.3 自动识别并打开Excel 2003和Excel 2007文件 ...

  4. C#项目中操作Excel文件——使用NPOI库

    转载自:http://blog.csdn.net/dcrmg/article/details/52356236# 感谢-牧野- 实际C#项目中经常会涉及到需要对本地Excel文件进行操作,特别是一些包 ...

  5. .NET Core 首例 Office 开源跨平台组件(NPOI Core)

    前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...

  6. Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  7. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  8. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  9. 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

    很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...

随机推荐

  1. POJ 1753 BFS

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 44450   Accepted: 19085 Descr ...

  2. POJ2528 线段树离散化

    Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 62771   Accepted: 18120 ...

  3. [freemarker篇]02.生成HTML的静态页面

    昨天完成了一部分的今天在上次的基础上,完成完成生成HTML静态页面的操作,中间会涉及一点标签的简单使用.今天的代码有一丢丢的对付的感觉!抱歉了,直接就上代码吧!求原谅! 项目结构目录如下: 第一步,新 ...

  4. [LeetCode] 9. Palindrome Number ☆

    Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negativ ...

  5. 转【es中数据节点和主机】

    在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题. 默认情况下,elasticsearch集群中每个节点都有成为主节点的资格,也都存储 ...

  6. (转)Linux下使Shell 命令脱离终端在后台运行

    转自: http://www.linuxidc.com/Linux/2011-05/35723.htm 方法如下: (1)输入命令: nohup 你的shell命令 & (2)回车,使终端回到 ...

  7. 图连通性【tarjan点双连通分量、边双联通分量】【无向图】

    根据 李煜东大牛:图连通性若干拓展问题探讨 ppt学习. 有割点不一定有割边,有割边不一定有割点. 理解low[u]的定义很重要. 1.无向图求割点.点双联通分量: 如果对一条边(x,y),如果low ...

  8. bzoj 1577: [Usaco2009 Feb]庙会捷运Fair Shuttle——小根堆+大根堆+贪心

    Description 公交车一共经过N(1<=N<=20000)个站点,从站点1一直驶到站点N.K(1<=K<=50000)群奶牛希望搭乘这辆公交车.第i群牛一共有Mi(1& ...

  9. Linux while 和 read 的用法

    Reference: [ linux man doc ] [ CSDN roler_ ] [ Reads from the file descriptor] read 命令说明 SYNTAX : re ...

  10. bzoj 2321 数学

    首先我们假设两个点(i,j),(i,k)向中间移动一格,且k>j+1,那么我们可以获得的价值为k-j,这样,我们定义每个点的每个星的能量为a[(i,j)]=i*i+j*j,这样这两个点开始的能量 ...