C#常见技能_excel文件读写

大家好,我是华山自控编程朱老师

前几天一个学员在学习C#与excel交互时,也不知道excel可以用来做什么 。下面我们就详细讲讲C# 和excel交互的相关知识。

C#是一种面向对象的编程语言,它的应用范围非常广泛,包括Windows桌面应用程序、Web应用程序、游戏开发等。与此同时,Excel也是一款非常流行的办公软件,它可以帮助我们轻松地管理和处理各种数据。在实际开发中,我们经常需要将C#与Excel进行交互,以实现数据的导入、导出、处理等功能。本文将介绍如何使用C#与Excel进行文件读写交互。

一、读取Excel文件

在C#中,我们可以使用Microsoft.Office.Interop.Excel命名空间提供的类来读取Excel文件。下面是一个简单的示例:

using Microsoft.Office.Interop.Excel;

扫描二维码关注公众号,回复: 15361594 查看本文章

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文件

除了使用Microsoft.Office.Interop.Excel命名空间提供的类外,我们还可以使用一些第三方库来读写Excel文件。其中比较常用的是EPPlus和NPOI。

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文件进行读写交互。我们可以使用Microsoft.Office.Interop.Excel命名空间提供的类,也可以使用第三方库EPPlus和NPOI来读写Excel文件。无论是使用哪种方法,我们都需要注意Excel文件的格式和版本,以确保读写操作的正确性。。。

 文章如果对你有用,麻烦点赞,评论~
最近很多小伙伴找我,说想要一些学习资料,然后我根据自己从业二十年经验,精心整理了一份「上位机编程入门到高级1教程+工具包」,点个关注,限时分享给大家,以下是领取入口:免费领,自动化控制编程入门到开挂学习路径(附教程和软件工具)_华山培训教程下载_华山自控编程的博客-CSDN博客大家好,我是华山自控编程的朱老师,很多同学都在讨论上位机运动控制卡与机器视觉编程的问题,今天写了干货,希望可以帮助到你们https://blog.csdn.net/hspx668/article/details/126586129?spm=1001.2014.3001.5501

猜你喜欢

转载自blog.csdn.net/hspx668/article/details/130831536