佛山网站制作系统,网店设计风格有哪些,肇庆城乡建设网站,微信crm客户管理系统欢迎来到《小5讲堂》 这是《C#》系列文章#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示#xff1a;博主能力有限#xff0c;理解水平有限#xff0c;若有不对之处望指正#xff01; 目录 背景读取并保存NPOI信息NPOI 插件介绍基本功能示例代码写入 Excel 文件… 欢迎来到《小5讲堂》 这是《C#》系列文章每篇文章将以博主理解的角度展开讲解。 温馨提示博主能力有限理解水平有限若有不对之处望指正 目录 背景读取并保存NPOI信息NPOI 插件介绍基本功能示例代码写入 Excel 文件的示例 相关文章 背景
好久没使用C#操作过Excel等文件刚好今天有位大学同学问到博主。 他有100多个excel表格文件需要提取每个文件的第二行数据统一保存到一张表里。 后面又需要把所有文件的excel数据全部放到同一个张表NPOI插件是插件首选。
读取并保存
创建一个新的工作簿定义表头创建表头行。 读取某个文件夹目录遍历所有文件夹下的所有excel文件并读取行数据遍历每个列的行数据追加到新的工作簿行里最后进行保存输出到本地。
// 读取xlsx
private void ReadExcelFiles(string folderPath)
{if (!Directory.Exists(folderPath)){MessageBox.Show(指定的文件夹路径不存在);return;}// 创建一个新的工作簿IWorkbook workbook new XSSFWorkbook();ISheet sheet workbook.CreateSheet(Sheet1);// 定义表头string[] headers {字段1, 字段2, 字段3, 字段4, 字段5};// 创建表头行IRow headerRow sheet.CreateRow(0);for (int i 0; i headers.Length; i){headerRow.CreateCell(i).SetCellValue(headers[i]);}// 创建一个新的工作簿int rowIndex 1;var files Directory.GetFiles(folderPath, *.xlsx);foreach (var file in files){try{if (!File.Exists(file)){MessageBox.Show($文件 {file} 不存在);continue;}using (var fileStream new FileStream(file, FileMode.Open, FileAccess.Read)){IWorkbook workbook2 new XSSFWorkbook(fileStream);ISheet sheet2 workbook2.GetSheetAt(0); // 获取第一个工作表// 获取行数int rowCount sheet2.PhysicalNumberOfRows;for (int rr 0; rr rowCount; rr){IRow row sheet2.GetRow(rr 1); // 获取第二行if (row ! null){var rowValues row.Cells.Select(cell cell.ToString()).ToArray();IRow dataRow sheet.CreateRow(rowIndex);for (int i 0; i rowValues.Length; i){dataRow.CreateCell(i).SetCellValue(rowValues[i]);}}rowIndex;}}}catch (Exception ex){MessageBox.Show($读取文件 {Path.GetFileName(file)} 时发生错误: {ex.Message});}}// 保存文件string filePath Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), alldata.xlsx);using (var fs new FileStream(filePath, FileMode.Create, FileAccess.Write)){workbook.Write(fs);}// /保存文件
} NPOI信息
NPOI 是一个用于处理 Microsoft Office 文件的开源库它提供了对 Excel、Word 和 PowerPoint 文件的读写功能。 NPOI 支持处理 .xls 和 .xlsx 格式的 Excel 文件.doc 和 .docx 格式的 Word 文件.ppt 和 .pptx 格式的 PowerPoint 文件。 以下是 NPOI 的基本功能和插件介绍
NPOI 插件介绍
1.NPOI: 核心库用于读取和写入 Office 文件的基本操作。它包含处理 Excel、Word 和 PowerPoint 文件的功能。 2.NPOI.OOXML: 支持 .xlsx 格式的 Excel 文件即 Office 2007 及以后版本。这是 NPOI 的一个扩展库提供对 Excel 2007 及以后版本格式的支持。 3.NPOI.OpenXml4Net: 支持 .docx 和 .pptx 格式的文件即 Office 2007 及以后版本。它用于处理 Open XML 格式的文件。 4.NPOI.HSSF: 支持 .xls 格式的 Excel 文件即 Office 97-2003 版本。用于读取和写入旧版本的 Excel 文件。 5.NPOI.SS.UserModel: 提供了处理 Excel 文件的通用接口包括 IWorkbook、ISheet 和 IRow 等接口适用于各种格式的 Excel 文件。
基本功能
1.Excel 文件操作
读取 Excel 文件: 通过 NPOI 读取 .xls 和 .xlsx 文件的数据包括单元格内容、行和列的索引等。写入 Excel 文件: 可以创建新的 Excel 文件或修改现有文件包括设置单元格的格式、字体、颜色等。数据操作: 读取和写入单元格内容操作行和列插入和删除行列合并单元格等。样式和格式: 设置单元格的样式包括字体、颜色、边框、对齐方式等。 2.Word 文件操作读取 Word 文件: 获取 .doc 和 .docx 文件中的文本、表格、段落等。写入 Word 文件: 创建新的 Word 文档或修改现有文档包括添加文本、表格、图片等。格式设置: 设置段落格式、字体样式、字体大小、文本颜色等。 3.PowerPoint 文件操作读取 PowerPoint 文件: 提取 .ppt 和 .pptx 文件中的幻灯片内容、文本、图片等。写入 PowerPoint 文件: 创建新的 PowerPoint 演示文稿或修改现有的演示文稿包括添加幻灯片、设置幻灯片的内容和样式等。
示例代码
读取 Excel 文件的示例
using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel; // 对于 .xlsx 格式
// using NPOI.HSSF.UserModel; // 对于 .xls 格式class Program
{static void Main(){string filePath your_file_path.xlsx;using (FileStream fileStream new FileStream(filePath, FileMode.Open, FileAccess.Read)){IWorkbook workbook new XSSFWorkbook(fileStream); // 对于 .xlsx 文件ISheet sheet workbook.GetSheetAt(0);foreach (IRow row in sheet){foreach (ICell cell in row){Console.Write(${cell.ToString()} );}Console.WriteLine();}}}
}
写入 Excel 文件的示例
using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel; // 对于 .xlsx 格式
// using NPOI.HSSF.UserModel; // 对于 .xls 格式class Program
{static void Main(){string filePath your_file_path.xlsx;IWorkbook workbook new XSSFWorkbook();ISheet sheet workbook.CreateSheet(Sheet1);IRow row sheet.CreateRow(0);ICell cell row.CreateCell(0);cell.SetCellValue(Hello, NPOI!);using (FileStream fileStream new FileStream(filePath, FileMode.Create, FileAccess.Write)){workbook.Write(fileStream);}}
}
这些示例展示了如何使用 NPOI 进行基本的文件读写操作。如果你需要更详细的文档或具体功能的实现可以参考 NPOI 的 官方文档 或其 GitHub 页面。
相关文章
【C#】.net core 6.0 webapi 使用core版本的NPOI的Excel读取数据以及保存数据
【C#】pdf按页分割文件以及分页合并效果还不错你值得拥有
【C#】未能加载文件或程序集“CefSharp.Core.Runtime.dll”或它的某一个依赖项。找不到指定的模块。
【C#】.net core 6.0 在program时间格式统一json格式化并列举program默认写法和简化写法
【C#】.net core 6.0 ApiControllerAPI控制器方法API接口以实体类作为接收参数应该注意的点
【C#】 SortedDictionary查找字典中是否存在给定的关键字
【C#】.net core 6.0 MVC返回JsonResult显示API接口返回值不可被JSON反序列化
【C#】.net core 6.0 使用第三方日志插件Log4net配置文件详细说明
【C#】使用代码实现龙年春晚扑克牌魔术守岁共此时代码实现篇
【C#】使用代码实现龙年春晚扑克牌魔术守岁共此时流程描述篇
【C#】约瑟夫原理举例2个代码实现
【C#】List泛型数据集如何循环移动最后一位移动到第一位以此类推
【C#】获取文本中的链接通过正则表达式的方法获取以及优化兼容多种格式 温故而知新不同阶段重温知识点会有不一样的认识和理解博主将巩固一遍知识点并以实践方式和大家分享若能有所帮助和收获这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。