vs中怎么读取excel表格

vs中怎么读取excel表格

在Visual Studio中读取Excel表格的几种方法包括:使用OLEDB、使用OpenXML SDK、使用第三方库(如EPPlus、NPOI)。 其中,使用OLEDB 是一种常见的方法,因为它能够直接与Excel文件进行交互,读取数据如同读取数据库表格一样方便。使用OLEDB时,需要注意Excel文件格式和适配器的兼容性。下面将详细介绍如何在Visual Studio中读取Excel表格的方法。


一、使用OLEDB读取Excel表格

OLEDB 是一种常见的读取Excel文件的方法,类似于访问数据库。它适用于较小规模的Excel数据读取。

1. 安装和引用必要的库

在Visual Studio中,首先需要确保项目引用了 System.DataSystem.Data.OleDb 命名空间。若使用.NET Core或.NET 5/6,则需要通过NuGet安装 System.Data.OleDb 包。

dotnet add package System.Data.OleDb

2. 编写读取代码

创建一个C#类,使用以下代码示例读取Excel文件:

using System;

using System.Data;

using System.Data.OleDb;

public class ExcelReader

{

public DataTable ReadExcel(string filePath, string sheetName)

{

string connString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={filePath};Extended Properties='Excel 12.0 Xml;HDR=YES;'";

using (OleDbConnection conn = new OleDbConnection(connString))

{

conn.Open();

OleDbDataAdapter adapter = new OleDbDataAdapter($"SELECT * FROM [{sheetName}$]", conn);

DataTable dt = new DataTable();

adapter.Fill(dt);

return dt;

}

}

}

3. 使用示例

以下代码展示了如何使用上述类读取Excel文件并输出内容:

class Program

{

static void Main(string[] args)

{

ExcelReader reader = new ExcelReader();

DataTable dt = reader.ReadExcel(@"C:pathtoyourfile.xlsx", "Sheet1");

foreach (DataRow row in dt.Rows)

{

foreach (var item in row.ItemArray)

{

Console.Write($"{item} ");

}

Console.WriteLine();

}

}

}

二、使用OpenXML SDK读取Excel表格

OpenXML SDK 是另一种读取Excel文件的方式,它不依赖于Office Interop和OLEDB,特别适用于服务器端应用。

1. 安装OpenXML SDK

通过NuGet安装 DocumentFormat.OpenXml 包:

dotnet add package DocumentFormat.OpenXml

2. 编写读取代码

以下代码示例展示了如何使用OpenXML SDK读取Excel文件:

using DocumentFormat.OpenXml.Packaging;

using DocumentFormat.OpenXml.Spreadsheet;

using System;

using System.Collections.Generic;

using System.Linq;

public class OpenXmlExcelReader

{

public List<List<string>> ReadExcel(string filePath)

{

List<List<string>> rows = new List<List<string>>();

using (SpreadsheetDocument doc = SpreadsheetDocument.Open(filePath, false))

{

WorkbookPart workbookPart = doc.WorkbookPart;

Sheet sheet = workbookPart.Workbook.Sheets.Elements<Sheet>().First();

WorksheetPart worksheetPart = (WorksheetPart)(workbookPart.GetPartById(sheet.Id));

SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First();

foreach (Row r in sheetData.Elements<Row>())

{

List<string> row = new List<string>();

foreach (Cell c in r.Elements<Cell>())

{

row.Add(GetCellValue(doc, c));

}

rows.Add(row);

}

}

return rows;

}

private string GetCellValue(SpreadsheetDocument doc, Cell cell)

{

SharedStringTablePart stringTablePart = doc.WorkbookPart.SharedStringTablePart;

if (cell.CellValue == null)

{

return "";

}

string value = cell.CellValue.InnerXml;

if (cell.DataType != null && cell.DataType.Value == CellValues.SharedString)

{

return stringTablePart.SharedStringTable.ChildElements[Int32.Parse(value)].InnerText;

}

return value;

}

}

3. 使用示例

以下代码展示了如何使用上述类读取Excel文件并输出内容:

class Program

{

static void Main(string[] args)

{

OpenXmlExcelReader reader = new OpenXmlExcelReader();

var rows = reader.ReadExcel(@"C:pathtoyourfile.xlsx");

foreach (var row in rows)

{

Console.WriteLine(string.Join(", ", row));

}

}

}

三、使用EPPlus读取Excel表格

EPPlus 是一个强大的第三方库,用于读取和写入Excel文件。它提供了简单的API,非常适合处理复杂的Excel操作。

1. 安装EPPlus

通过NuGet安装 EPPlus 包:

dotnet add package EPPlus

2. 编写读取代码

以下代码示例展示了如何使用EPPlus读取Excel文件:

using OfficeOpenXml;

using System;

using System.Collections.Generic;

using System.IO;

public class EPPlusExcelReader

{

public List<List<string>> ReadExcel(string filePath)

{

List<List<string>> rows = new List<List<string>>();

FileInfo fileInfo = new FileInfo(filePath);

using (ExcelPackage package = new ExcelPackage(fileInfo))

{

ExcelWorksheet worksheet = package.Workbook.Worksheets[0];

for (int row = 1; row <= worksheet.Dimension.End.Row; row++)

{

List<string> rowList = new List<string>();

for (int col = 1; col <= worksheet.Dimension.End.Column; col++)

{

rowList.Add(worksheet.Cells[row, col].Text);

}

rows.Add(rowList);

}

}

return rows;

}

}

3. 使用示例

以下代码展示了如何使用上述类读取Excel文件并输出内容:

class Program

{

static void Main(string[] args)

{

EPPlusExcelReader reader = new EPPlusExcelReader();

var rows = reader.ReadExcel(@"C:pathtoyourfile.xlsx");

foreach (var row in rows)

{

Console.WriteLine(string.Join(", ", row));

}

}

}

四、使用NPOI读取Excel表格

NPOI 是另一个流行的第三方库,用于处理Excel文件。它基于Apache POI项目,支持Excel 2003和2007格式。

1. 安装NPOI

通过NuGet安装 NPOI 包:

dotnet add package NPOI

2. 编写读取代码

以下代码示例展示了如何使用NPOI读取Excel文件:

using NPOI.SS.UserModel;

using NPOI.XSSF.UserModel;

using System;

using System.Collections.Generic;

using System.IO;

public class NPOIExcelReader

{

public List<List<string>> ReadExcel(string filePath)

{

List<List<string>> rows = new List<List<string>>();

using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))

{

IWorkbook workbook = new XSSFWorkbook(fs);

ISheet sheet = workbook.GetSheetAt(0);

for (int row = 0; row <= sheet.LastRowNum; row++)

{

IRow rowObj = sheet.GetRow(row);

List<string> rowList = new List<string>();

for (int col = 0; col < rowObj.LastCellNum; col++)

{

rowList.Add(rowObj.GetCell(col).ToString());

}

rows.Add(rowList);

}

}

return rows;

}

}

3. 使用示例

以下代码展示了如何使用上述类读取Excel文件并输出内容:

class Program

{

static void Main(string[] args)

{

NPOIExcelReader reader = new NPOIExcelReader();

var rows = reader.ReadExcel(@"C:pathtoyourfile.xlsx");

foreach (var row in rows)

{

Console.WriteLine(string.Join(", ", row));

}

}

}


以上是四种在Visual Studio中读取Excel表格的方法:使用OLEDB、使用OpenXML SDK、使用EPPlus、使用NPOI。每种方法都有其优缺点,可以根据具体需求选择合适的方式进行Excel数据的读取。

相关问答FAQs:

1. 如何在VS中读取Excel表格?
在Visual Studio中,您可以使用C#或VB.NET编程语言来读取Excel表格。您可以使用第三方库,如EPPlus或NPOI,来实现这个功能。这些库提供了一系列的API和方法,可以帮助您打开、读取和解析Excel文件。您可以通过在项目中添加这些库的引用来开始使用它们,并按照库的文档和示例来编写代码。

2. 我应该如何安装和使用EPPlus来读取Excel表格?
安装EPPlus非常简单。您可以通过NuGet包管理器来安装EPPlus。在Visual Studio中,打开项目,右键单击项目名称,选择“管理NuGet程序包”,然后在搜索框中输入“EPPlus”进行搜索。选择EPPlus并点击安装。安装完成后,您可以使用EPPlus提供的API来读取和操作Excel表格。

3. 在Visual Studio中,如何使用NPOI库来读取Excel表格?
要使用NPOI库来读取Excel表格,您需要先将其添加到您的项目中。在Visual Studio中,打开项目,右键单击项目名称,选择“管理NuGet程序包”,然后在搜索框中输入“NPOI”进行搜索。选择NPOI并点击安装。安装完成后,您可以使用NPOI提供的API来读取和解析Excel文件。您可以参考NPOI的文档和示例代码来了解如何使用该库。

文章包含AI辅助创作,作者:Edit2,如若转载,请注明出处:https://docs.pingcode.com/baike/4263581

(0)
Edit2Edit2
免费注册
电话联系

4008001024

微信咨询
微信咨询
返回顶部