C#进阶-用于Excel处理的程序集(1),2024年最新面试字节跳动HarmonyOS鸿蒙工程师该怎么准备

98 阅读4分钟

using System.IO;

class Program { static void Main(string[] args) { // 读取Excel文件 using (FileStream fs = new FileStream("example.xlsx", FileMode.Open, FileAccess.Read)) { IWorkbook workbook = new XSSFWorkbook(fs); ISheet sheet = workbook.GetSheetAt(0); // 获取第一个工作表

// 遍历每一行 for (int rowIdx = 0; rowIdx <= sheet.LastRowNum; rowIdx++) { IRow row = sheet.GetRow(rowIdx); if (row != null) { // 遍历每一个单元格 for (int cellIdx = 0; cellIdx < row.LastCellNum; cellIdx++) { ICell cell = row.GetCell(cellIdx); if (cell != null) { Console.Write(cell.ToString() + "\t"); } } Console.WriteLine(); } } } } }

该示例演示了如何使用NPOI库读取Excel文件中的数据。首先,通过FileStream打开Excel文件,然后创建XSSFWorkbook对象表示整个工作簿,通过GetSheetAt(0)获取第一个工作表。接下来,通过遍历每一行和每一个单元格,将单元格中的内容打印出来。


② 写入Excel文件

using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.IO;

class Program { static void Main(string[] args) { // 创建一个工作簿 IWorkbook workbook = new XSSFWorkbook();

// 创建一个工作表 ISheet sheet = workbook.CreateSheet("Sheet1");

// 创建行和单元格,并设置单元格的值 IRow row = sheet.CreateRow(0); row.CreateCell(0).SetCellValue("Hello"); row.CreateCell(1).SetCellValue("World");

// 保存Excel文件 using (FileStream fs = new FileStream("example.xlsx", FileMode.Create)) { workbook.Write(fs); } } }

该示例展示了如何使用NPOI库创建一个Excel文件并写入数据。首先,创建XSSFWorkbook对象表示整个工作簿,然后通过CreateSheet("Sheet1")创建一个名为"Sheet1"的工作表。接着,创建行和单元格,并通过SetCellValue方法设置单元格的值为"Hello"和"World"。最后,通过FileStream将工作簿写入到文件中。


二、EPPlus

EPPlus是一个.NET库,用于创建、操作和读写Excel 2007/2010/2013/2016文件,基于Open XML标准。下面详细解释示例代码中的读取和写入Excel文件的过程,并提供更多代码示例和详解。

1、示例代码

① 读取Excel文件

using OfficeOpenXml; using System; using System.IO;

class Program { static void Main(string[] args) { FileInfo excelFile = new FileInfo("example.xlsx"); using (ExcelPackage excelPackage = new ExcelPackage(excelFile)) { ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets[0]; // 获取第一个工作表

int rowCount = worksheet.Dimension.Rows; int colCount = worksheet.Dimension.Columns;

// 遍历每一行和每一个单元格 for (int row = 1; row <= rowCount; row++) { for (int col = 1; col <= colCount; col++) { Console.Write(worksheet.Cells[row, col].Value.ToString() + "\t"); } Console.WriteLine(); } } } }

在读取Excel文件的示例代码中,我们首先通过FileInfo类创建了一个表示要读取的Excel文件的实例。然后,我们使用ExcelPackage类的构造函数打开了这个Excel文件,并创建了一个ExcelPackage对象,该对象表示整个Excel文件。接下来,我们通过Workbook属性获取了Excel文件的工作簿(workbook),再使用Worksheets属性获取了第一个工作表(worksheet)。通过Dimension属性,我们获取了工作表的行数和列数。最后,我们使用两层循环遍历了每一行和每一个单元格,并通过Cells属性获取单元格对象,并输出了单元格的值。


② 写入Excel文件

using OfficeOpenXml; using System; using System.IO;

class Program { static void Main(string[] args) { FileInfo excelFile = new FileInfo("example.xlsx"); using (ExcelPackage excelPackage = new ExcelPackage()) { ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1");

worksheet.Cells["A1"].Value = "Hello"; worksheet.Cells["B1"].Value = "World";

excelPackage.SaveAs(excelFile); } } }

在写入Excel文件的示例代码中,我们首先创建了一个FileInfo对象来指定要保存的Excel文件的路径。然后,我们创建了一个空的ExcelPackage对象,表示一个新的Excel文件。通过Workbook属性,我们创建了一个工作簿,并使用Worksheets属性添加了一个名为"Sheet1"的工作表。然后,我们使用Cells属性来设置单元格的值,例如"A1"单元格的值设置为"Hello",“B1"单元格的值设置为"World”。最后,我们调用SaveAs方法将Excel文件保存到指定路径。


三、Spire.XLS

Spire.XLS是一个专业的.NET Excel组件,支持读写、操作和生成Excel文件,提供了丰富的API和功能。与其他Excel组件相比,Spire.XLS具有性能优越、易于使用和丰富的特性等优势。

1、示例代码

① 读取Excel文件

using Spire.Xls; using System;

class Program { static void Main(string[] args) { Workbook workbook = new Workbook(); workbook.LoadFromFile("example.xlsx");

Worksheet sheet = workbook.Worksheets[0]; // 获取第一个工作表

int rowCount = sheet.Rows.Length; int colCount = sheet.Columns.Length;

for (int row = 1; row <= rowCount; row++) { for (int col = 1; col <= colCount; col++) { Console.Write(sheet[row, col].Text + "\t"); } Console.WriteLine(); } }

img img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!