大家好,我是华山自控编程朱老师
前几天一个学员在学习C#与excel交互时,也不知道excel可以用来做什么 。下面我们就详细讲讲C# 和excel交互的相关知识。
C#是一种面向对象的编程语言,它的应用范围非常广泛,包括Windows桌面应用程序、Web应用程序、游戏开发等。与此同时,Excel也是一款非常流行的办公软件,它可以帮助我们轻松地管理和处理各种数据。在实际开发中,我们经常需要将C#与Excel进行交互,以实现数据的导入、导出、处理等功能。本文将介绍如何使用C#与Excel进行文件读写交互。
在C#中,我们可以使用
Microsoft.Office.Interop.Excel命名空间提供的类来读取Excel文件。下面是一个简单的示例:
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文件外,我们还可以使用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对象。
除了使用
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文件的格式和版本,以确保读写操作的正确性。。。
联系客服