`

NPOI生成excel表格

    博客分类:
  • C#
阅读更多

NPOI生成excel表格

1.什么是NPOI?百度百科给出的定义是:NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对WordExcel文档进行读写操作。

简单的说,NPOI就是一个功能强大的用来读写excelword文档的类库。

<!--[if !supportLists]-->2.    2.NPOI生成EXCEL表格的基本过程:获取数据>创建表格>将数据写入表格

 

<!--[if !supportLists]-->3.    3.代码示例

   创建两个类:学生类和员工类

    public class Student
    {
        public String no;
        public String name;
    }
public class Worker
    {
        public String age;
        public String job;
        public String name;
    }

 表格两个sheet页的表头

            /// <summary>
        /// 获取学生表头
        /// </summary>
        /// <returns></returns>
        public List<String> GetStuHeaderList()
        {
            var stuHeaderList = new List<String>();
            stuHeaderList.Add("学号");
            stuHeaderList.Add("姓名");
            return stuHeaderList;
        }
        /// <summary>
        /// 获取工人表头
        /// </summary>
        /// <returns></returns>
        public List<String> GetWorHeaderList()
        {
            var worHeaderList = new List<String>();
            worHeaderList.Add("姓名");
            worHeaderList.Add("年龄");
            worHeaderList.Add("工作");
            return worHeaderList;
        }

 获取数据:项目中一般会在数据库中获取数据,这里为了简化,直接向列表中添加内容

        public void GetData(List<Student> stuList, List<Worker> workList)
        {
            Student stu1 = new Student();
            stu1.no = "1";
            stu1.name = "小A";
            stuList.Add(stu1);
            Student stu2 = new Student();
            stu2.no = "2";
            stu2.name = "小B";
            stuList.Add(stu2);
            Worker work1 = new Worker();
            work1.age = "20";
            work1.job = "工程师";
            work1.name = "小C";
            workList.Add(work1);
            Worker work2 = new Worker();
            work2.age = "22";
            work2.job = "技术员";
            work2.name = "小D";
            workList.Add(work2);
        }

 创建EXCEL文件并写入数据

     public String CreateExcelFile(String filePath, String fileName)
        {
            String result = "S";
            //为列表添加数据
            List<Student> stuList = new List<Student>();
            List<Worker> workList = new List<Worker>();
            this.GetData(stuList, workList);

            if (!string.IsNullOrEmpty(filePath))
            {
                NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
                NPOI.SS.UserModel.ISheet sheet = book.CreateSheet("sheet1");

                //设置标题样式
                ICellStyle style1 = book.CreateCellStyle();
                style1.Alignment = HorizontalAlignment.Center;
                IFont font = book.CreateFont();
                font.Boldweight = short.MaxValue;
                font.FontHeight = 280;
                style1.SetFont(font);
                //写标题
                NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(0);
                row1.Height = 420;
                sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 1));//合并单元格
                ICell cell1 = row1.CreateCell(0);
                cell1.CellStyle = style1;
                cell1.SetCellValue("学生信息表");
                //设置表头字体
                ICellStyle style2 = book.CreateCellStyle();
                style2.Alignment = HorizontalAlignment.Center;
                IFont font3 = book.CreateFont();
                font3.Boldweight = short.MaxValue;
                style2.SetFont(font3);
                style2.WrapText = true;
                style2.VerticalAlignment = VerticalAlignment.Center;
                //写文件头
                NPOI.SS.UserModel.IRow row2 = sheet.CreateRow(1);
                List<String> headerList = this.GetStuHeaderList();
                for (int i = 0; i < headerList.Count; i++)
                {
                    ICell cell5 = row2.CreateCell(i);
                    cell5.CellStyle = style2;
                    cell5.SetCellValue(headerList[i]);
                }
                //写数据
                for (int i = 0; i < stuList.Count; i++)
                {
                    NPOI.SS.UserModel.IRow row3 = sheet.CreateRow(i + 2);
                    row3.CreateCell(0).SetCellValue(stuList[i].no);
                    row3.CreateCell(1).SetCellValue(stuList[i].name);
                }
                //生成员工表
                book = WriteWorkerFileToExcel(book, filePath + @"\" + fileName + ".xls", workList);
                // 写入到客户端  
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    book.Write(ms);
                    using (FileStream fs = new FileStream(filePath +@"\" + fileName + ".xls", FileMode.Create, FileAccess.Write))
                    {
                        byte[] data = ms.ToArray();
                        fs.Write(data, 0, data.Length);
                        fs.Flush();
                    }
                    book = null;
                }
            }
            return result;
        }
        /// <summary>
        /// 生成sheet2
        /// </summary>
        /// <param name="book"></param>
        /// <param name="filePath"></param>
        /// <param name="workList"></param>
        /// <returns></returns>
        public NPOI.HSSF.UserModel.HSSFWorkbook WriteWorkerFileToExcel(NPOI.HSSF.UserModel.HSSFWorkbook book, String filePath,List<Worker> workList)
        {
            if (!string.IsNullOrEmpty(filePath))
            {

                NPOI.SS.UserModel.ISheet sheet = book.CreateSheet("sheet2");
                List<String> headerList = this.GetWorHeaderList();
                //设置标题样式
                ICellStyle style1 = book.CreateCellStyle();
                style1.Alignment = HorizontalAlignment.Center;
                IFont font = book.CreateFont();
                font.Boldweight = short.MaxValue;
                font.FontHeight = 280;
                style1.SetFont(font);
                //写标题
                NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(0);
                row1.Height = 420;
                sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 2));
                ICell cell1 = row1.CreateCell(0);
                cell1.CellStyle = style1;
                cell1.SetCellValue("员工信息表");

                //设置表头字体
                ICellStyle style2 = book.CreateCellStyle();
                style2.Alignment = HorizontalAlignment.Center;
                IFont font3 = book.CreateFont();
                font3.Boldweight = short.MaxValue;
                style2.SetFont(font3);
                style2.WrapText = true;
                style2.VerticalAlignment = VerticalAlignment.Center;
                //写文件头
                NPOI.SS.UserModel.IRow row2 = sheet.CreateRow(1);
                for (int i = 0; i < headerList.Count; i++)
                {
                    ICell cell5 = row2.CreateCell(i);
                    cell5.CellStyle = style2;
                    cell5.SetCellValue(headerList[i]);
                }
                //写数据
                for (int i = 0; i < workList.Count; i++)
                {
                    NPOI.SS.UserModel.IRow row3 = sheet.CreateRow(i + 2);
                    row3.CreateCell(0).SetCellValue(workList[i].name);
                    row3.CreateCell(1).SetCellValue(workList[i].job);
                    row3.CreateCell(2).SetCellValue(workList[i].age);
                }
                return book;
            }
            return null;
        }

 

 

1
0
分享到:
评论

相关推荐

    NPOI获取Excel指定表格位置的图片

    在这个场景中,我们要关注的是如何利用NPOI在VB.NET中获取Excel指定表格位置的图片。 首先,理解NPOI的基本用法至关重要。NPOI提供了对HSSFWorkbook(用于旧版的XLS格式)和XSSFWorkbook(用于较新的XLSX格式)的...

    NPOI导出excel表格

    ### NPOI 导出 Excel 表格技术详解 #### 一、概述 NPOI 是一个基于 Apache POI 的 .NET 版本,用于读写 Microsoft Office 格式的文件,如 Excel 和 Word。NPOI 提供了丰富的 API 来操作这些文件,尤其在处理 Excel...

    C# .net 利用Npoi将Excel转Pdf(完整代码).rar

    在.NET开发环境中,如果你需要将Excel文件转换为PDF格式,NPOI库是一个非常实用的工具。NPOI是一个开源的API,它允许开发者读写Microsoft Office格式的文件,包括Excel(XLS和XLSX)。这篇博客文章的作者提供了使用...

    C#基于NPOI生成具有精确列宽行高的Excel文件的方法

    本文实例讲述了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是非常具有实用价值的技巧分享给大家供大家参考。具体方法如下:。 一、前言 NPOI是操作Excel的神器,导出导入快如闪电, 但是SetColumnWidth函数...

    C# NPOI生成word插入图片和表格

    将这些数据组织成表格格式,然后使用NPOI生成Word文档并插入相应的表格。 总结一下,C#和NPOI的组合使得在Word文档中动态生成内容变得非常方便。无论是插入表格展示数据,还是插入图片增强视觉效果,NPOI都提供了...

    npoi实现excel中多个表格数据分别合并

    在“npoi实现excel中多个表格数据分别合并”这个主题中,我们将深入探讨如何利用NPOI库来处理Excel文件中的多个工作表(表格)并进行数据的合并操作。这在数据处理、分析和报告生成等场景中非常常见。 首先,我们...

    NPOI导入导出Excel表格方法.7z

    `NPOI导入导出Excel表格方法.txt`文件应该包含了关于如何使用NPOI进行Excel导入和导出的文本说明,包括可能的步骤、注意事项和示例代码。这将帮助开发者快速理解并开始使用NPOI库。 通过这个压缩包,开发者可以学习...

     NPOI iTextSharp导出Excel并加水印源码.rar

    - **样式与格式**: NPOI允许设置单元格的字体、颜色、对齐方式、边框等属性,使Excel表格更加美观和专业。 - **公式与引用**: 支持Excel的内置公式和单元格间的引用,使得数据分析和计算变得更加便捷。 2. **...

    C#通过NPOI库操作Excel,并将Excel数据导入Mysql数据库(自动建表)

    内容概要:本资源介绍了如何从...阅读建议:此资源以如何读取Excel数据,将Excel数据转换为Datatable格式,然后将datatable导入Mysql数据库 ,同时还介绍了如何将Datatable数据生成Excel表格,及相关NPOI操作Excel例子

    C# 生成Excel表格(非office)

    综上所述,C#结合NPOI库生成Excel表格是一种高效且灵活的方法,特别适用于那些需要在无Office环境下生成Excel的项目。通过熟练掌握NPOI的使用,开发者可以创建出具有复杂格式和数据结构的Excel文件,满足各种业务...

    NPOI 插件在 Unity C#中生成 Excel文件

    在Unity游戏开发环境中,C#是主要的编程语言,NPOI插件的引入使得开发者可以在游戏中或者相关应用中生成和操作Excel文件,这在数据管理、报告生成或者用户数据导出等场景下非常有用。 首先,要理解如何在Unity中...

    NPOIexcel导入导出

    导出数据到Excel文件时,NPOI允许你从数据库、列表或任何数据源中获取数据,并将其转换为Excel表格。这在数据分析、报表生成或批量数据处理场景中非常有用。你可以根据需求动态创建表格结构,甚至在运行时调整样式...

    NPOI生成EXCEL

    【NPOI生成EXCEL】是使用开源库NPOI来创建和操作Excel文件的一种技术。NPOI是一个专门用于处理Microsoft Office文件格式的.NET库,尤其适用于生成和修改Excel(.xls)文档。它提供了丰富的API,允许开发人员在程序中...

    通用ASP.NET Core NPOI导出复杂Word、Excel和Excel数据导入实战项目

    NPOI是.NET平台上的一个开源库,它允许开发者处理Microsoft Office文件,包括Word(.docx)和Excel(.xlsx)文档。Layui则是一个轻量级的前端UI框架,常用于构建美观的Web界面。 本项目的核心知识点主要包括以下...

    NPOI对EXCEL操作实例

    以上就是使用NPOI对Excel进行操作的关键知识点,涵盖了文件创建、数据写入、表格合并以及样式设置等常见功能。通过这些技术,开发者可以方便地在程序中生成、修改和处理Excel文档,大大提升了工作效率。在实际项目中...

    NPOI导出Excel

    总之,NPOI为.NET开发者提供了一种强大而灵活的方式来处理Excel文件,无论是简单的数据导出还是复杂的报表生成,都能轻松应对。通过学习和掌握NPOI的使用,我们可以提升应用程序的交互性和功能,满足用户对数据管理...

    NPOI EXCEL

    NPOI本身并不提供直接的打印接口,但你可以先用NPOI生成Excel文件,然后通过系统打印服务或者第三方打印库进行打印。 6. **NPOI与其他技术的集成**: NPOI可与ASP.NET、WPF、WinForms等.NET框架无缝集成,实现Web...

    NPOI导出复杂格式Excel

    在这个“NPOI导出复杂格式Excel”的示例中,我们将深入探讨如何使用NPOI来创建包含多个表格和工作簿的复杂Excel文件。 首先,我们要理解NPOI的基本概念。在NPOI中,`HSSFWorkbook`和`XSSFWorkbook`分别代表了旧版的...

    Excel表格操作类、搜索、NPOI示例等

    本文将深入探讨在C#中处理Excel的相关知识点,包括Excel表格操作类、搜索功能、NPOI库的使用以及高效地将Excel数据导入SQL Server的方法。 首先,ExcelHelper.cs文件可能是一个自定义的C#类库,用于简化Excel文件的...

    C# Excel数据生成图表

    在C#编程环境中,生成Excel数据的图表是一项常见的任务,特别是在数据分析、报表生成或用户界面展示等场景。这里我们将深入探讨如何使用C#和`Microsoft.Office.Interop.Excel`库来实现这个功能。 首先,`Microsoft....

Global site tag (gtag.js) - Google Analytics