NPOI 创建Excel 设置宽度 样式 颜色对比表

前两天用NPOI来操作Office软件,在使用的时候有点问题,也有收获,就做个笔记 记录下来,主要做的事数据的导出功能。一些公共的方法,做个笔记。 更多的详细内容可以到NPOI的官方教程去看  http://tonyqus.sinaapp.com/

1.引用NPOI

这个,使用第三方类库就要添加DLL ,我使用的是1.2.5的版本 ,具体的版本可以在属相中找到 如下图。 貌似最新的版本到了2.0了

DLL文件点击下载

2.创建简单的一个Excel

 MemoryStream ms = new MemoryStream();   //创建内存流
           //创建一个文件
           string fileName = "D://xinjian.xlsx";
           IWorkbook workbook = new HSSFWorkbook();//IWorkbook和HSSFWorkbook的命名空间分别是NPOI.HSSF.UserModel;NPOI.SS.UserModel; 记得引用
           ISheet sheet1 = workbook.CreateSheet("sheet1");//创建一个工作薄 括号内为名称
           IRow dataRow = sheet1.CreateRow(1);//创建数据行 1代表是在第几行创建 变量
           dataRow.CreateCell(1).SetCellValue("第一行第一列");//创建单元格 并且赋值 

           workbook.Write(ms);
           ms.Flush();
           ms.Position = 0;

           using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
           {
               byte[] data = ms.ToArray();

               fs.Write(data, 0, data.Length);
               fs.Flush();

               data = null;
           }

3.获取Excel数据

4.设置高度

headerRow.Height = 100 * 20;//设置第一行的高度
//Height的单位是1/20个点,所以Height的值永远是HeightInPoints的20倍。

5.设置宽度

sheet1.SetColumnWidth(1, 3 * 256);//设置宽
//这里你会发现一个有趣的现象,SetColumnWidth的第二个参数要乘以256,这是怎么回事呢?其实,这个参数的单位是1/256个字符宽度,也就是说,这里是把B列的宽度设置为了100个字符。

6.设置样式

headerRow.GetCell(1).CellStyle = Getcellstyle(workbook, "header");//设置样式

//单元格样式
        static ICellStyle Getcellstyle(IWorkbook wb, string type)
        {
            //HSSFCellStyle cels = new HSSFCellStyle (1,
            ICellStyle cellStyle = wb.CreateCellStyle();
            cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;

            switch (type)
            {
                case "header":
                    cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.TOP;
                    cellStyle.WrapText = true;//自动换行
                    break;
                case "program":
                    cellStyle.FillPattern = FillPatternType.SOLID_FOREGROUND;
                    cellStyle.FillForegroundColor = 26;
                    break;
                case "groupName":
                    cellStyle.FillPattern = FillPatternType.SOLID_FOREGROUND;
                    cellStyle.FillForegroundColor = 52;
                    break;
                case "columnName":
                    cellStyle.FillPattern = FillPatternType.SOLID_FOREGROUND;
                    cellStyle.FillForegroundColor = 50;
                    break;
            }
            return cellStyle;
        }

//在这里填充的单元格的背景色不是FillBackgroundColor  而是 FillForegroundColor 很奇怪 而且 必须设置FillPattern这个属性

7.颜色对比表

最后,给大家提供一个操作NPOI简单的类库,希望有所帮助   点击下载

时间: 2024-10-03 04:24:48

NPOI 创建Excel 设置宽度 样式 颜色对比表的相关文章

NPOI 创建Excel,数据读取与写入

<1> using System; using System.Collections.Generic; using System.Linq; using System.Web; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.SS.Formula.Functions; using System.IO; using System.Text; namespace 导入导出Excel { /// <summary&g

用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法

今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Excel中格式的设置,以及单元格的合并等等.下面就介绍下,使用NPOI类库操作Excel的方法. 1.首先我们先在内存中生成一个Excel文件,代码如下:   HSSFWorkbook book = new HSSFWorkbook();        ISheet sheet = book.CreateSheet("Sheet1"); 2.然后在新创建的sheet里面,创建我们的行和列,代码如下

Response输出excel设置文本样式

在网上查了些Response导出excel然后设置样式的方法,发现没有一个可行的于是开始自己研究, 发现可以通过输出样式的方式进行配置,我要设置的是全文本格式在excel样式是这样的mso-number-format:"\@" 于是我对Response输出进行了完善 Response.Clear(); Response.BufferOutput = true; string style = "<style> td{ mso-number-format:\"

NPOI之Excel——合并单元格、设置样式、输入公式

首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkbook(); //在工作簿中:建立空白工作表 ISheet sheet = workbook.CreateSheet(); //在工作表中:建立行,参数为行号,从0计 IRow row = sheet.CreateRow(0); //在行中:建立单元格,参数为列号,从0计 ICell cell = ro

NPOI之Excel——合并单元格、设置样式、输入公式、设置筛选等

首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkbook(); //在工作簿中:建立空白工作表 ISheet sheet = workbook.CreateSheet(); //在工作表中:建立行,参数为行号,从0计 IRow row = sheet.CreateRow(0); //在行中:建立单元格,参数为列号,从0计 ICell cell = ro

使用openpyxl创建excel并设置单元格样式

wb = Workbook() ws = wb.create_sheet('月度排名汇总', 0) # 合并单元格 ws.merge_cells('b2:b3') ws.merge_cells('c2:c3') ws.merge_cells('d2:d3') ws.merge_cells('e2:g2') ws.merge_cells('h2:j2') # 设置单元格文本内容 ws['b2'].value = '负责人' ws['c2'].value = '部门/小组' ws['d2'].val

NPOI导出Excel - 自动适应中文宽度(帮助类下载)

前言 做了好几个Excel.Word导出,用了HTTP流导出伪Excel文件.用过Office组件(这东西在生产环境下相当麻烦,各种权限,**). 最后决定使用NPOI组件来导出,好处很多很多了,这里不多说. 这篇文章呢,主要说一下Excel导出的细节以及问题. 我在制作这个Demo的时候使用的环境: Visual Studio 2010.Office 2013 .Framework .NET 3.5 .NPOI 1.2.5(至于为什么没有选最新版 稍后说) 完成后的截图 从浏览器导出的Exce

c#用NPOI将excel文件内容读取到datatable数据表中

将excel文件内容读取到datatable数据表中,支持97-2003和2007两种版本的excel 1.第一种是根据excel文件路径读取excel并返回datatable 1 /// <summary> 2 /// 将excel文件内容读取到DataTable数据表中 3 /// </summary> 4 /// <param name="fileName">文件完整路径名</param> 5 /// <param name=

POI简易帮助文档系列--给Excel设置样式

正如Html需要CSS一样,我们的POI生成的Excel同样需要样式才能更完美的表现我们的数据.下面还是从简单的例子出发,学习和了解POI的样式设计. 一.我的位置. package com.myjava.poi; import java.io.FileOutputStream; import java.util.Date; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HS