C#读写导入导出Excel表格模板(NPOI)

这篇具有很好参考价值的文章主要介绍了C#读写导入导出Excel表格模板(NPOI)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

NPOI介绍:

NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。
NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。

NPOI优势:

1、您可以完全免费使用该框架
2、包含了大部分EXCEL的特性(单元格样式、数据格式、公式等等)
3、专业的技术支持服务(24*7全天候) (非免费)
4、支持处理的文件格式包括xls, xlsx, docx.
5、采用面向接口的设计架构( 可以查看 NPOI.SS 的命名空间)
6、同时支持文件的导入和导出
7、基于.net 2.0 也支持xlsx 和 docx格式(当然也支持.net 4.0)
8、来自全世界大量成功且真实的测试Cases
9、大量的实例代码
11、你不需要在服务器上安装微软的Office,可以避免版权问题。
12、使用起来比Office PIA的API更加方便,更人性化。
13、你不用去花大力气维护NPOI,NPOI Team会不断更新、改善NPOI,绝对省成本。
14、不仅仅对与Excel可以进行操作,对于doc、ppt文件也可以做对应的操作

下面使用到NPOI.HSSF进行实战(Microsoft Excel BIFF(Excel 97-2003)格式读写库)

第一步首先是要引入NPOI依赖包了
C#读写导入导出Excel表格模板(NPOI)
第二步,准备Excel模板

C#读写导入导出Excel表格模板(NPOI)

第三步编写代码

以下仅展示核心代码

        public void PrintExcle(HttpQueryData httpQueryData, List<PrintData> prints) {
            string path= "Excel模板.xls";//模板路径
            Random random = new Random();
            var localTemplatPath = TempFileAccess.TempDir + @"\" + httpQueryData.TaskNo + " " + prints[0].DeptName + random.Next(100000, 999999) + "Excel模板.xls";//新生成文件路径以及文件名与格式
            File.Copy(path , localTemplatPath);

            using (var fs = File.OpenRead(localTemplatPath))
            {
            	//此处应该再判断文件的格式是xls还是xlsx,如果是xlsx则使用XSSFWorkbook
            	//HSSFWorkbook:是操作Excel2003以前(包括2003)的版本、XSSFWorkbook:是操作Excel2007的版本
                var workbook = new HSSFWorkbook(fs);
                var sheet = workbook.GetSheetAt(0);

                //基本信息(Row和Cell分别代表着行、列,计数都是从0开始,比如说Excel里面第一个格子就是0,0)
                //此处代码是根据自己的模板去写GetRow与GetCell的值
                var rowIndex = 1;
                sheet.GetRow(rowIndex).GetCell(1).SetCellValue(httpQueryData.TaskNo);
                if(!string.IsNullOrWhiteSpace(httpQueryData.InputDate))
                sheet.GetRow(rowIndex).GetCell(4).SetCellValue(httpQueryData.InputDate.Split(' ')[0]);
                sheet.GetRow(rowIndex).GetCell(7).SetCellValue(DateTime.Now.ToString("yyyy-MM-dd"));

                rowIndex = 2;
                sheet.GetRow(rowIndex).GetCell(1).SetCellValue(httpQueryData.DelegateOrgName);
                sheet.GetRow(rowIndex).GetCell(4).SetCellValue(" ");
                sheet.GetRow(rowIndex).GetCell(7).SetCellValue(httpQueryData.BusinessFromDisplay);

                rowIndex = 3;
                sheet.GetRow(rowIndex).GetCell(1).SetCellValue(" ");
                sheet.GetRow(rowIndex).GetCell(4).SetCellValue(" ");
                sheet.GetRow(rowIndex).GetCell(7).SetCellValue(prints[0].DeptName);

                //****动态列表信息,先加行,在填入信息
                if (prints.Count > 0)
                {
                    for (int i = 0; i < prints.Count - 1; i++)
                    {
                        sheet.CopyRow(5, 6 + i);
                    }
                }
                int count = 0;
                rowIndex = 5;
                for (int i = 0; i < prints.Count; i++) {
                    var curRow = sheet.GetRow(rowIndex);
                    var data = prints[i];
                    curRow.GetCell(0).SetCellValue(i+1);
                    curRow.GetCell(1).SetCellValue(data.Name);
                    curRow.GetCell(3).SetCellValue(data.FactoryNo);
                    curRow.GetCell(4).SetCellValue(data.Count);
                    curRow.GetCell(5).SetCellValue(data.InspectionAttribute);
                    curRow.GetCell(7).SetCellValue(data.CertificateRequirements);
                    curRow.GetCell(9).SetCellValue(data.Remark);
                    count = count + int.Parse(data.Count);
                    rowIndex = rowIndex + 1;
                }

                sheet.GetRow(rowIndex).GetCell(4).SetCellValue(count);

                //保存
                using (FileStream localFs = File.OpenWrite(localTemplatPath))
                {
                    workbook.Write(localFs);
                    localFs.Close();
                }
            }

            System.Diagnostics.Process.Start(localTemplatPath);
        }

最终效果
C#读写导入导出Excel表格模板(NPOI)文章来源地址https://www.toymoban.com/news/detail-402556.html

到了这里,关于C#读写导入导出Excel表格模板(NPOI)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java导出Excel模板,导出数据到指定模板,通过模板导入数据(一)

    Java导出Excel模板,导出数据到指定模板,通过模板导入数据(一)

    本文章主要是介绍阿里巴巴的easyexcel的使用 1. 首先需要我们导入easyexcel的依赖包 2. 前期工作准备 编写相关导出模板和导入模板。在项目的resources下创建文件夹,命名为excel 导出模板(此处仅做示例,字段根据自己项目来):  导入模板(导入时需要哪些字段根据自己项目业

    2024年02月03日
    浏览(9)
  • 使用EasyExcel实现Excel表格的导入导出

    使用EasyExcel实现Excel表格的导入导出

    Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。 easyexcel重

    2024年02月12日
    浏览(6)
  • Easys Excel的表格导入(读)导出(写)-----java

    Easys Excel的表格导入(读)导出(写)-----java

    可以学习一些新知识: EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel excel的一些优点和缺点 java解析excel的框架有很多 : poi jxl,存在问题:非常的消耗内存, easyexcel 我们遇到再大的excel都不会出现内存溢出的问题 能够将一个原本3M excel文件,poi来操作将会占用内存 100MB,

    2024年02月13日
    浏览(9)
  • 【Go】excelize库实现excel导入导出封装(三),基于excel模板导出excel

    【Go】excelize库实现excel导入导出封装(三),基于excel模板导出excel

    大家好,这里是符华~ 关于excelize库实现excel导入导出封装,我已经写了两篇了,我想要的功能基本已经实现了,现在还差一个模板导出,这篇文章就来讲讲如何实现用模板导出excel。 前两篇: 【Go】excelize库实现excel导入导出封装(一),自定义导出样式、隔行背景色、自适应

    2024年01月25日
    浏览(21)
  • easyexcel根据模板导出Excel文件,表格自动填充问题

    同事在做easyexcel导出Excel,根据模板导出的时候,发现导出的表格,总会覆盖落款的内容。 这就很尴尬了,表格居然不能自动填充,直接怒喷工具,哈哈。 然后一起看了一下这个问题。 我找了自己的系统中关于表格导出的页面,导出了一下,发现可以正常扩充。 于是排查问

    2024年02月06日
    浏览(10)
  • 【vue导入导出Excel】vue简单实现导出和导入复杂表头excel表格功能【纯前端版本和配合后端版本】

    【vue导入导出Excel】vue简单实现导出和导入复杂表头excel表格功能【纯前端版本和配合后端版本】

    前言 这是一个常用的功能,就是导入和导出excel表格 但是时常会遇到一些复杂表头的表格导出和导入 比如我这个案例里面的三层表头的表格。 网上看了下发现了一个非常简单导出和导入方法 当然这个是纯前端的版本,会出现分页不好下载的情况。所以实际工作中,导出还是

    2024年02月11日
    浏览(8)
  • easypoi 模板导入、导出合并excel单元格功能

    easypoi 模板导入、导出合并excel单元格功能

    hutool 导出复杂excel(动态合并行和列) java使用poi读取跨行跨列excel springboot集成easypoi并使用其模板导出功能和遇到的坑 Easypoi Excel模板功能简要说明 easypoi 模板导出兼容合并单元格功能 高校校舍使用情况统计表 单位(盖章): 填表人: 部门负责人: 分管校领导: 填表日期:

    2023年04月22日
    浏览(10)
  • C# 导出EXCEL 和 导入

    C# 导出EXCEL 和 导入

    2024年01月16日
    浏览(8)
  • Java 使用hutool工具进行导出导入excel表格(代码很简单)

    Java 使用hutool工具进行导出导入excel表格(代码很简单)

    创建一个Controller进行测试 

    2024年02月07日
    浏览(10)
  • EasyExcel导出带下拉选数据的Excel数据导入模板

    EasyExcel导出带下拉选数据的Excel数据导入模板

    #因为项目中需要导入一些信息,但是这些信息比较不常见,且在项目字典数据中维护有这些数据,所以在导出模板的时候,把这些数据一并导出,可以减少用户的编写,避免在导入的时候因为数据错误,发生一些业务问题 直接开始 1、以岗位类型为例,展示数据的实现方式

    2024年02月03日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包