大家好,我是华山自控编程朱老师 前几天一个学员在学习C#与excel交互时,也不知道excel可以用来做什么 。下面我们就详细讲讲C# 和excel交互的相关知识。 C#是一种面向对象的编程语言,它的应用范围非常广泛,包括Windows桌面应用程序、Web应用程序、游戏开发等。与此同时,Excel也是一款非常流行的办公软件,它可以帮助我们轻松地管理和处理各种数据。在实际开发中,我们经常需要将C#与Excel进行交互,以实现数据的导入、导出、处理等功能。本文将介绍如何使用C#与Excel进行文件读写交互。 一、读取Excel文件在C#中,我们可以使用 using Microsoft.Office.Interop.Excel; public void ReadExcelFile(string filePath) { // 创建Excel对象 Application excel = new Application(); Workbook workbook = excel.Workbooks.Open(filePath); // 获取第一个工作表 Worksheet worksheet = workbook.Sheets[1]; // 获取单元格值 Range range = worksheet.UsedRange; int rowCount = range.Rows.Count; int colCount = range.Columns.Count; for (int i = 1; i <= rowCount; i++) { for (int j = 1; j <= colCount; j++) { string cellValue = (range.Cells[i, j] as Range).Value.ToString(); Console.Write(cellValue + '\t'); } Console.WriteLine(); } // 关闭Excel对象 workbook.Close(); excel.Quit(); } 在上面的代码中,我们首先创建了一个Application对象,然后使用Workbooks.Open方法打开Excel文件。接着,我们获取了第一个工作表,并使用UsedRange属性获取了单元格的值。最后,我们遍历了所有单元格,并输出了它们的值。最后,我们关闭了Excel对象。 二、写入Excel文件除了读取Excel文件外,我们还可以使用C#向Excel文件中写入数据。下面是一个简单的示例: using Microsoft.Office.Interop.Excel; public void WriteExcelFile(string filePath) { // 创建Excel对象 Application excel = new Application(); Workbook workbook = excel.Workbooks.Add(); Worksheet worksheet = workbook.Sheets[1]; // 写入数据 worksheet.Cells[1, 1] = '姓名'; worksheet.Cells[1, 2] = '年龄'; worksheet.Cells[2, 1] = '张三'; worksheet.Cells[2, 2] = '25'; worksheet.Cells[3, 1] = '李四'; worksheet.Cells[3, 2] = '30'; // 保存Excel文件 workbook.SaveAs(filePath); // 关闭Excel对象 workbook.Close(); excel.Quit(); } 在上面的代码中,我们首先创建了一个Application对象,然后使用Workbooks.Add方法创建了一个新的Excel文件。接着,我们获取了第一个工作表,并使用Cells属性向单元格中写入数据。最后,我们使用SaveAs方法保存了Excel文件,并关闭了Excel对象。 三、使用第三方库读写Excel文件除了使用 EPPlus是一个开源的.NET库,它可以帮助我们轻松地读写Excel文件。下面是一个简单的示例: using OfficeOpenXml; public void ReadExcelFile(string filePath) { // 创建Excel对象 using (ExcelPackage package = new ExcelPackage(new FileInfo(filePath))) { // 获取第一个工作表 ExcelWorksheet worksheet = package.Workbook.Worksheets[1]; // 获取单元格值 int rowCount = worksheet.Dimension.Rows; int colCount = worksheet.Dimension.Columns; for (int i = 1; i <= rowCount; i++) { for (int j = 1; j <= colCount; j++) { string cellValue = worksheet.Cells[i, j].Value.ToString(); Console.Write(cellValue + '\t'); } Console.WriteLine(); } } } public void WriteExcelFile(string filePath) { // 创建Excel对象 using (ExcelPackage package = new ExcelPackage(new FileInfo(filePath))) { // 获取第一个工作表 ExcelWorksheet worksheet = package.Workbook.Worksheets.Add('Sheet1'); // 写入数据 worksheet.Cells[1, 1].Value = '姓名'; worksheet.Cells[1, 2].Value = '年龄'; worksheet.Cells[2, 1].Value = '张三'; worksheet.Cells[2, 2].Value = '25'; worksheet.Cells[3, 1].Value = '李四'; worksheet.Cells[3, 2].Value = '30'; // 保存Excel文件 package.Save(); } } 在上面的代码中,我们使用了EPPlus库来读写Excel文件。在读取Excel文件时,我们首先创建了一个ExcelPackage对象,并使用FileInfo构造函数指定了Excel文件路径。接着,我们获取了第一个工作表,并使用Dimension属性获取了单元格的行数和列数。最后,我们遍历了所有单元格,并输出了它们的值。 在写入Excel文件时,我们也首先创建了一个ExcelPackage对象,并使用Workbook.Worksheets.Add方法创建了一个新的工作表。然后,我们使用Cells属性向单元格中写入数据,并使用Save方法保存了Excel文件。 NPOI是另一个流行的.NET库,它也可以帮助我们读写Excel文件。下面是一个简单的示例: using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; public void ReadExcelFile(string filePath) { // 创建Excel对象 using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { IWorkbook workbook = new XSSFWorkbook(fileStream); ISheet worksheet = workbook.GetSheetAt(0); // 获取单元格值 int rowCount = worksheet.LastRowNum + 1; int colCount = worksheet.GetRow(0).LastCellNum; for (int i = 0; i < rowCount; i++) { IRow row = worksheet.GetRow(i); for (int j = 0; j < colCount; j++) { string cellValue = row.GetCell(j).ToString(); Console.Write(cellValue + '\t'); } Console.WriteLine(); } } } public void WriteExcelFile(string filePath) { // 创建Excel对象 IWorkbook workbook = new XSSFWorkbook(); ISheet worksheet = workbook.CreateSheet('Sheet1'); // 写入数据 IRow row1 = worksheet.CreateRow(0); row1.CreateCell(0).SetCellValue('姓名'); row1.CreateCell(1).SetCellValue('年龄'); IRow row2 = worksheet.CreateRow(1); row2.CreateCell(0).SetCellValue('张三'); row2.CreateCell(1).SetCellValue('25'); IRow row3 = worksheet.CreateRow(2); row3.CreateCell(0).SetCellValue('李四'); row3.CreateCell(1).SetCellValue('30'); // 保存Excel文件 using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write)) { workbook.Write(fileStream); fileStream.Close(); workbook.Close(); } } 在上面的代码中,我们使用了NPOI库来读写Excel文件。在读取Excel文件时,我们首先使用FileStream对象打开了Excel文件,并创建了一个XSSFWorkbook对象。接着,我们获取了第一个工作表,并使用LastRowNum和LastCellNum属性获取了单元格的行数和列数。最后,我们遍历了所有单元格,并输出了它们的值。 在写入Excel文件时,我们首先创建了一个XSSFWorkbook对象,并使用CreateSheet方法创建了一个新的工作表。然后,我们使用CreateRow和CreateCell方法向单元格中写入数据,并使用FileStream对象保存了Excel文件。 部分项目图片: 总结本文介绍了如何使用C#与Excel文件进行读写交互。我们可以使用 |
|