c#导入excel
时间: 2024-04-28 22:14:14
(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)
在C#中导入Excel文件有多种方式,以下是一些常见的方法:
1. 使用 Microsoft.Office.Interop.Excel 命名空间:
这是最常见的方法,需要引用 Microsoft.Office.Interop.Excel 程序集。这种方法需要在系统上安装 Microsoft Office,并且需要确保应用程序有适当的权限访问Excel文件。
csharpusing Excel = Microsoft.Office.Interop.Excel; // 打开Excel文件 Excel.Application excelApp = new Excel.Application(); Excel.Workbook workbook = excelApp.Workbooks.Open(@"C:\path\to\your\file.xlsx"); // 访问工作表 Excel.Worksheet worksheet = workbook.Sheets[1]; // 读取数据 for (int row = 1; row <= worksheet.UsedRange.Rows.Count; row++) { for (int col = 1; col <= worksheet.UsedRange.Columns.Count; col++) { string cellValue = worksheet.Cells[row, col].Value?.ToString(); // 处理读取到的单元格数据 Console.WriteLine($"Row {row}, Column {col}: {cellValue}"); } } // 关闭工作簿和Excel应用程序 workbook.Close(); excelApp.Quit();
2. 使用 EPPlus 库:
EPPlus是一个开源的.NET库,可以在不使用Microsoft Office的情况下读写Excel文件。它提供了一个简单的API来处理Excel文件。
csharpusing OfficeOpenXml; // 打开Excel文件 using (var package = new ExcelPackage(new FileInfo(@"C:\path\to\your\file.xlsx"))) { // 访问工作表 ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; // 读取数据 for (int row = 1; row <= worksheet.Dimension.Rows; row++) { for (int col = 1; col <= worksheet.Dimension.Columns; col++) { string cellValue = worksheet.Cells[row, col].Value?.ToString(); // 处理读取到的单元格数据 Console.WriteLine($"Row {row}, Column {col}: {cellValue}"); } } }
3. 使用 OleDb 连接:
这种方法使用OleDb连接来读取Excel文件,适用于不同版本的Excel文件。
csharpusing System.Data; using System.Data.OleDb; // 连接字符串根据Excel文件版本而有所不同 string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\file.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES'"; using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); // 创建数据适配器并填充数据集 OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connection); DataSet dataSet = new DataSet(); adapter.Fill(dataSet); // 处理数据集中的数据 DataTable dataTable = dataSet.Tables[0]; foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { // 处理单元格数据 Console.WriteLine(item); } } }
这三种方法各有优缺点:
1. 使用 Microsoft.Office.Interop.Excel 方法需要安装 Microsoft Office,并且需要确保应用程序有适当的权限访问Excel文件。这种方法比较简单,但可能会遇到权限问题。
2. 使用 EPPlus 库不需要安装 Microsoft Office,并且提供了一个简单的API来处理Excel文件。这种方法更加灵活,但可能需要额外引入第三方库。
3. 使用 OleDb 连接方法适用于不同版本的Excel文件,但需要编写更多的代码来处理数据集。这种方法更加通用,但可能需要更多的配置和设置。
根据具体的需求和环境,可以选择合适的方法来导入Excel文件。