zoukankan      html  css  js  c++  java
  • 【NPOI】 操作OfficeExcel

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

    1.引用NPOI

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

             DLL文件点击下载

             

    2.创建简单的一个Excel

    View Code
     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.设置高度

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

    5.设置宽度

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

    6.设置样式

    View Code
    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简单的类库,希望有所帮助   点击下载

    作者:ruicky
    出处:http://www.cnblogs.com/ruicky/
    欢迎任何形式的转载,未经作者同意,请保留此段声明!

  • 相关阅读:
    手机自动化
    记录
    Linux 死机了怎么办
    前端源码
    LNMP环境
    PHP学习之路(一)
    py
    蜘蛛问题
    mongodb
    【HTML/XML 2】XML基础知识点总结
  • 原文地址:https://www.cnblogs.com/ruicky/p/2946077.html
Copyright © 2011-2022 走看看