c#中如何读取excel数据库数据库数据
- 行业动态
- 2025-03-20
- 4
ExcelPackage
类加载Excel文件,再通过工作表对象访问单元格数据。
在C#中读取Excel文件数据,通常有几种方法可以选择,以下是一个详细的指南,包括使用不同的库和方法来读取Excel文件中的数据。
方法一:使用Microsoft.Office.Interop.Excel
步骤:
1、安装和引用:确保你的项目已经安装了Microsoft.Office.Interop.Excel
库,并正确引用了该库。
2、打开Excel文件:使用Application
类打开Excel文件。
3、访问工作表:通过Worksheets
集合访问具体的工作表。
4、读取数据:遍历单元格或使用Range对象读取数据。
5、关闭文件:操作完成后,关闭Excel文件并释放资源。
示例代码:
using System; using Excel = Microsoft.Office.Interop.Excel; namespace ReadExcelData { class Program { static void Main(string[] args) { // 创建Excel应用实例 Excel.Application excelApp = new Excel.Application(); // 打开Excel文件 Excel.Workbook workbook = excelApp.Workbooks.Open("path_to_your_file.xlsx"); // 获取第一个工作表 Excel.Worksheet worksheet = workbook.Sheets[1]; // 假设数据从A1开始 Excel.Range range = worksheet.UsedRange; // 遍历范围 for (int i = 1; i <= range.Rows.Count; i++) { for (int j = 1; j <= range.Columns.Count; j++) { Console.Write(range.Cells[i, j].Value2 + "t"); } Console.WriteLine(); } // 关闭工作簿和Excel应用 workbook.Close(false); excelApp.Quit(); } } }
方法二:使用EPPlus库
步骤:
1、安装EPPlus:通过NuGet包管理器安装EPPlus库。
2、加载Excel文件:使用ExcelPackage
类加载Excel文件。
3、访问工作表:通过Worksheets
属性访问具体的工作表。
4、读取数据:遍历单元格或使用Cells
属性读取数据。
5、关闭文件:操作完成后,关闭Excel文件并释放资源。
示例代码:
using System; using OfficeOpenXml; namespace ReadExcelData { class Program { static void Main(string[] args) { // 加载Excel文件 using (var package = new ExcelPackage(new FileInfo("path_to_your_file.xlsx"))) { // 获取第一个工作表 var worksheet = package.Workbook.Worksheets[0]; // 假设数据从A1开始 for (int i = 1; i <= worksheet.Dimension.End.Row; i++) { for (int j = 1; j <= worksheet.Dimension.End.Column; j++) { var cellValue = worksheet.Cells[i, j].Text; Console.Write(cellValue + "t"); } Console.WriteLine(); } } } } }
方法三:使用NPOI库
步骤:
1、安装NPOI:通过NuGet包管理器安装NPOI库。
2、加载Excel文件:使用XSSFWorkbook
类加载Excel文件(适用于.xlsx
格式)。
3、访问工作表:通过Sheets
属性访问具体的工作表。
4、读取数据:遍历行和单元格读取数据。
5、关闭文件:操作完成后,关闭Excel文件并释放资源。
示例代码:
using System; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.IO; namespace ReadExcelData { class Program { static void Main(string[] args) { // 加载Excel文件 using (var fileStream = new FileStream("path_to_your_file.xlsx", FileMode.Open, FileAccess.Read)) { IWorkbook workbook = new XSSFWorkbook(fileStream); ISheet sheet = workbook.GetSheetAt(0); for (int i = 0; i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); if (row != null) { for (int j = 0; j < row.LastCellNum; j++) { ICell cell = row.GetCell(j); Console.Write(cell.ToString() + "t"); } Console.WriteLine(); } } } } } }
FAQs
Q1: 如果Excel文件包含多个工作表,如何指定要读取的工作表?
A1: 对于所有上述方法,你可以通过索引或名称来指定要读取的工作表,在EPPlus中,你可以使用package.Workbook.Worksheets["SheetName"]
来访问特定名称的工作表;在NPOI中,可以使用workbook.GetSheet("SheetName")
。
Q2: 如何处理读取过程中可能出现的异常?
A2: 在处理Excel文件时,建议使用try-catch
块来捕获和处理可能的异常,如文件未找到、格式错误等,这样可以提高程序的健壮性,并提供有用的错误信息以供调试。