zoukankan      html  css  js  c++  java
  • NPOI 操作Excel

    一、NPOI组件导入

    右键项目菜单,“管理NuGet程序包”

    直接搜索“NPOI”即会出现列表,下载第一个进行安装即可

    安装完成后项目引用会出现以下几项

    二、基础使用

    添加引用

    using NPOI.HPSF;
    using NPOI.HSSF.UserModel;
    using NPOI.SS.UserModel;

    Excel操作开始

    HSSFWorkbook hssfworkbook = new HSSFWorkbook();//先创建Workbook
    ISheet sheet= hssfworkbook.CreateSheet("Sheet1");//创建sheet页
    IRow row1=sheet.CreateRow(0);//创建行
    row1.CreateCell(0).SetCellValue("test");//创建单元格并设置值

    文件导出

    FileStream file = new FileStream(sFilePath, FileMode.Create);
    hssfworkbook.Write(file);
    file.Close();

    测试代码(以MVC实例):

            /// <summary>
            /// 读取xls内容
            /// </summary>
            /// <returns></returns>
            public ActionResult Index()
            {
                string sFilePath = @"C:	ext.xls";
                //根据路径获取读取xls文件
                HSSFWorkbook wb = new HSSFWorkbook(new FileStream(sFilePath, FileMode.Open));
                //获取sheet对象
                ISheet sheet1 = wb.GetSheet("Sheet1");
                //获取行
                IRow row = sheet1.GetRow(1);
                //获取单元格
                ICell cell = row.GetCell(0);
                ICell cell1 = row.GetCell(1);
    
                var cellValue = cell.ToString();
                return View();
            }
    
            /// <summary>
            /// NPIO导出excel
            /// </summary>
            /// <returns></returns>
            public FileResult DownFile()
            {
                string sFilePath = @"C:	ext.xls";
                HSSFWorkbook hssfworkbook = new HSSFWorkbook();//先创建Workbook
                ISheet sheet = hssfworkbook.CreateSheet("Sheet1");//创建sheet页
                IRow row1 = sheet.CreateRow(0);//创建行
                row1.CreateCell(0).SetCellValue("test");//创建单元格并设置值
    
                //设置列宽(字符宽度)
                sheet.SetColumnWidth(0, 10 * 256);//第一列,10个字符宽度
                //设置行高
                row1.HeightInPoints = 40;//高度(像素)
                //设置网格的默认行高和列框
                sheet.DefaultColumnWidth = 100 * 256;
                sheet.DefaultRowHeightInPoints = 30;
    
                //设置单元格样式 
                //样式创建
                ICellStyle style = hssfworkbook.CreateCellStyle();
                style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;//文字横向居中
                style.VerticalAlignment = VerticalAlignment.Center;//文字纵向居中
                IFont font = hssfworkbook.CreateFont();//字体
                font.FontHeight = 20 * 20;
                style.SetFont(font);
    
                ICell cell = row1.Cells[0];//获取单元格对象
                cell.CellStyle = style;//绑定样式
    
                //单元格合并
                sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 8));//合拼了A1到I1
    
                //设置文件的详细信息
                DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
                dsi.Company = "公司名称";//公司
                SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
                si.Subject = "主题";//主题
                hssfworkbook.DocumentSummaryInformation = dsi;
                hssfworkbook.SummaryInformation = si;
    
                FileStream file = new FileStream(sFilePath, FileMode.Create);
                hssfworkbook.Write(file);
                file.Close();
                return File(sFilePath, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "text.xls");
            }
    作者:chenze
    出处:https://www.cnblogs.com/chenze-Index/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    mysql数据库
    Python中socket编程
    Python中logging模块
    Python中的多进程
    Python中并发、多线程等
    Python模块化
    Python中异常处理
    KafKa入门
    kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
    第一节 MongoDB介绍及下载与安装
  • 原文地址:https://www.cnblogs.com/chenze-Index/p/11381078.html
Copyright © 2011-2022 走看看