IronXL 操作指南 Csharp导入excel 如何在 C# 中导入 Excel 文件 Curtis Chau 已更新:八月 20, 2025 下载 IronXL NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在双子座打开 向 Gemini 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English 作为开发人员,我们经常需要从 Excel 文件导入数据,并利用这些数据来满足我们的应用程序和数据管理需求。 IronXL 无需编写很多代码,即可轻松将我们需要的数据直接导入 C# 项目,然后以编程方式对其进行操作。 快速入门:立即加载您的 Excel 文件 只需使用 IronXL 的无超时 API 进行一次方法调用,即可在几秒钟内加载任何受支持的 Excel 工作表(XLSX、CSV 等)——无需互操作,轻松便捷。 立即开始与工作簿进行交互,根据需要访问单元格、区域或工作表。 立即开始使用 NuGet 创建 PDF 文件: 使用 NuGet 包管理器安装 IronXL PM > Install-Package IronXL.Excel 复制并运行这段代码。 WorkBook wb = IronXL.WorkBook.Load("path/to/data.xlsx"); 部署到您的生产环境中进行测试 立即开始在您的项目中使用 IronXL,免费试用! 免费试用30天 导入 Excel 数据 C# 使用 IronXL 库导入数据 在 C# 中导入 Excel 数据 导入特定单元格区域的数据 导入包含聚合函数(例如 SUM、AVG、MIN、MAX 等)的 Excel 数据 最小工作流程(5 个步骤) 下载并安装用于导入 Excel 文件的 C# 库 准备要导入的Excel文件 使用Load方法导入电子表格 使用直观的API编辑已加载的Excel文件 以各种类型导出已编辑的Excel文件 步骤1 1. 使用 IronXL 库导入数据 本教程将使用 IronXL Excel 库提供的函数导入数据。 该软件可免费用于开发。 通过 DLL 下载或使用 NuGet 包导航将其安装到您的C# 项目中。 Install-Package IronXL.Excel 如何使用教程 2. 项目访问工作表 为了满足我们今天的项目需求,我们将使用在步骤 1 中安装的 IronXL 软件,将 Excel 数据导入到我们的 C# 应用程序中。 在步骤 2 中,我们将使用 IronXL 的WorkBook.Load()函数将 Excel 工作簿加载到我们的 C# 项目中。 在这个函数中,我们将 Excel 工作簿的路径作为字符串参数传递,如下所示: // Load Excel file WorkBook wb = WorkBook.Load("Path"); // Load Excel file WorkBook wb = WorkBook.Load("Path"); ' Load Excel file Dim wb As WorkBook = WorkBook.Load("Path") $vbLabelText $csharpLabel 指定路径下的 Excel 文件将被加载到wb中。 接下来,我们需要访问 Excel 文件中的特定工作表,该文件中的数据将被导入到项目中。 为此,我们可以使用 IronXL 的GetWorkSheet()函数,将工作表名称作为字符串参数传递,以指定要导入 WorkBook 中的哪个工作表。 // Specify sheet name of Excel WorkBook WorkSheet ws = wb.GetWorkSheet("SheetName"); // Specify sheet name of Excel WorkBook WorkSheet ws = wb.GetWorkSheet("SheetName"); ' Specify sheet name of Excel WorkBook Dim ws As WorkSheet = wb.GetWorkSheet("SheetName") $vbLabelText $csharpLabel 工作表将以ws形式导入,而wb是我们在上面的代码示例中定义的工作簿。 还有以下几种将 Excel 工作表导入到项目中的替代方法。 // Import WorkSheet by various methods // by sheet indexing WorkSheet mySheet = wb.WorkSheets[SheetIndex]; // get default WorkSheet WorkSheet defaultSheet = wb.DefaultWorkSheet; // get first WorkSheet WorkSheet firstSheet = wb.WorkSheets.First(); // for the first or default sheet WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault(); // Import WorkSheet by various methods // by sheet indexing WorkSheet mySheet = wb.WorkSheets[SheetIndex]; // get default WorkSheet WorkSheet defaultSheet = wb.DefaultWorkSheet; // get first WorkSheet WorkSheet firstSheet = wb.WorkSheets.First(); // for the first or default sheet WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault(); ' Import WorkSheet by various methods ' by sheet indexing Dim mySheet As WorkSheet = wb.WorkSheets(SheetIndex) ' get default WorkSheet Dim defaultSheet As WorkSheet = wb.DefaultWorkSheet ' get first WorkSheet Dim firstSheet As WorkSheet = wb.WorkSheets.First() ' for the first or default sheet Dim firstOrDefaultSheet As WorkSheet = wb.WorkSheets.FirstOrDefault() $vbLabelText $csharpLabel 现在,我们可以轻松地从指定的 Excel 文件中导入任何类型的数据。 让我们来看看在项目中导入 Excel 文件数据的所有可能方法。 3. 在 C# 中导入 Excel 数据 这是将 Excel 文件数据导入我们项目的基本步骤。 为此,我们可以使用单元寻址系统来指定我们需要导入哪些单元数据。 它将返回Excel文件中特定单元格地址的值。 var cellValue = ws["Cell Address"]; var cellValue = ws["Cell Address"]; Dim cellValue = ws("Cell Address") $vbLabelText $csharpLabel 我们还可以使用行索引和列索引从 Excel 文件导入单元格数据。 这行代码将返回指定行和列索引的值。 var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex]; var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex]; Dim cellValueByIndex = ws.Rows(RowIndex).Columns(ColumnIndex) $vbLabelText $csharpLabel 如果我们想将导入的单元格值赋给变量,可以使用以下代码。 // Import Data by Cell Address // by cell addressing string val = ws["Cell Address"].ToString(); // by row and column indexing string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString(); // Import Data by Cell Address // by cell addressing string val = ws["Cell Address"].ToString(); // by row and column indexing string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString(); ' Import Data by Cell Address ' by cell addressing Dim val As String = ws("Cell Address").ToString() ' by row and column indexing Dim valWithIndexing As String = ws.Rows(RowIndex).Columns(ColumnIndex).Value.ToString() $vbLabelText $csharpLabel 在以上示例中,行索引和列索引均从 0 开始。 4. 导入特定范围的 Excel 数据 如果要从 Excel 工作簿中导入特定范围内的数据,可以使用range函数轻松完成。 为了定义范围,我们需要描述起始单元格地址和结束单元格地址。 这样,它将返回指定范围内的所有单元格值。 var rangeData = ws["Starting Cell Address:Ending Cell Address"]; var rangeData = ws["Starting Cell Address:Ending Cell Address"]; Dim rangeData = ws("Starting Cell Address:Ending Cell Address") $vbLabelText $csharpLabel 有关在 Excel 文件中处理范围的更多信息,请查看提供的代码示例。 :path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-import.cs using IronXL; using System; // Import Excel WorkBook WorkBook wb = WorkBook.Load("sample.xlsx"); // Specify WorkSheet WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Import data of specific cell string val = ws["A4"].Value.ToString(); Console.WriteLine("Import Value of A4 Cell address: {0}", val); Console.WriteLine("import Values in Range From B3 To B9 :\n"); // Import data in specific range foreach (var item in ws["B3:B9"]) { Console.WriteLine(item.Value.ToString()); } Console.ReadKey(); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 上述代码显示以下输出: Excel 文件sample.xlsx中的值如下: 5. 通过聚合函数导入Excel数据 我们还可以将聚合函数应用于 Excel 文件,并导入这些聚合函数生成的结果数据。 以下是一些不同功能及其使用方法的示例。 Sum() // To find the sum of a specific cell range var sum = ws["Starting Cell Address:Ending Cell Address"].Sum(); // To find the sum of a specific cell range var sum = ws["Starting Cell Address:Ending Cell Address"].Sum(); ' To find the sum of a specific cell range Dim sum = ws("Starting Cell Address:Ending Cell Address").Sum() $vbLabelText $csharpLabel Average() // To find the average of a specific cell range var average = ws["Starting Cell Address:Ending Cell Address"].Avg(); // To find the average of a specific cell range var average = ws["Starting Cell Address:Ending Cell Address"].Avg(); ' To find the average of a specific cell range Dim average = ws("Starting Cell Address:Ending Cell Address").Avg() $vbLabelText $csharpLabel Min() // To find the minimum in a specific cell range var minimum = ws["Starting Cell Address:Ending Cell Address"].Min(); // To find the minimum in a specific cell range var minimum = ws["Starting Cell Address:Ending Cell Address"].Min(); ' To find the minimum in a specific cell range Dim minimum = ws("Starting Cell Address:Ending Cell Address").Min() $vbLabelText $csharpLabel Max() // To find the maximum in a specific cell range var maximum = ws["Starting Cell Address:Ending Cell Address"].Max(); // To find the maximum in a specific cell range var maximum = ws["Starting Cell Address:Ending Cell Address"].Max(); ' To find the maximum in a specific cell range Dim maximum = ws("Starting Cell Address:Ending Cell Address").Max() $vbLabelText $csharpLabel 您可以阅读更多关于在 Excel for C# 中使用聚合函数的内容,并了解更多关于使用不同方法提取数据的内容。 让我们来看一个应用这些函数导入 Excel 文件数据的例子。 :path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-math-functions.cs using IronXL; using System; // Import Excel file WorkBook wb = WorkBook.Load("sample.xlsx"); // Specify WorkSheet WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Import Excel file data by applying aggregate functions decimal sum = ws["D2:D9"].Sum(); decimal avg = ws["D2:D9"].Avg(); decimal min = ws["D2:D9"].Min(); decimal max = ws["D2:D9"].Max(); Console.WriteLine("Sum From D2 To D9: {0}", sum); Console.WriteLine("Avg From D2 To D9: {0}", avg); Console.WriteLine("Min From D2 To D9: {0}", min); Console.WriteLine("Max From D2 To D9: {0}", max); Console.ReadKey(); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 上述代码会输出以下结果: 我们的文件sample.xlsx将包含以下值: 6. 导入完整的Excel文件数据 如果我们想将完整的 Excel 文件数据导入到我们的 C# 项目中,我们可以先将加载的工作簿解析为数据集。 这样,完整的 Excel 数据将被导入到数据集中,Excel 文件中的工作表将成为该数据集中的数据表。 以下是实际应用示例: // Import WorkBook into DataSet DataSet ds = wb.ToDataSet(); // Import WorkBook into DataSet DataSet ds = wb.ToDataSet(); ' Import WorkBook into DataSet Dim ds As DataSet = wb.ToDataSet() $vbLabelText $csharpLabel 这样,我们指定的工作表将被导入到数据集中,我们可以根据需要使用该数据集。 通常,Excel 文件的第一列用作ColumnName 。 在这种情况下,我们需要将第一列设为 DataTable ColumnName 。 为此,我们将 IronXL 的ToDataSet()函数的布尔参数设置如下: // Import WorkBook into DataSet with first row as ColumnNames DataSet ds = wb.ToDataSet(true); // Import WorkBook into DataSet with first row as ColumnNames DataSet ds = wb.ToDataSet(true); ' Import WorkBook into DataSet with first row as ColumnNames Dim ds As DataSet = wb.ToDataSet(True) $vbLabelText $csharpLabel 这将把 Excel 文件的第一列设置为 DataTable ColumnName 。 让我们来看一个完整的示例,了解如何将 Excel 数据导入到数据集中,并将 Excel 工作表的第一列用作数据表ColumnName : :path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-dataset.cs using IronXL; using System; using System.Data; WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Import Excel data into a DataSet DataSet ds = wb.ToDataSet(true); Console.WriteLine("Excel file data imported to dataset successfully."); Console.ReadKey(); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 使用 Excel 数据集和数据表函数可能比较复杂,但我们提供了更多示例,帮助您将文件数据集成到 C# 项目中。 图书馆快速访问 查阅 IronXL 参考资料 在我们的 IronXL 完整文档 API 参考中,了解更多关于通过单元格、区域、数据集和数据表提取 Excel 数据的信息。 查阅 IronXL 参考资料 常见问题解答 如何不使用Interop在C#中导入Excel文件? 您可以使用IronXL在C#中导入Excel文件,而无需Interop。只需使用WorkBook.Load()方法加载文件,并通过GetWorkSheet()等各种函数访问数据。 如何在C#项目中安装IronXL库? 通过在包管理器控制台中执行命令Install-Package IronXL.Excel,或直接从IronXL网站下载DLL来安装IronXL。 在IronXL中可用于访问特定工作表的方法有哪些? 您可以使用GetWorkSheet()方法通过提供工作表名称作为参数来访问IronXL中特定的工作表。 如何从特定单元格范围导入数据到C#? 使用IronXL,您可以通过在范围函数中定义开始和结束单元格地址来从特定单元格范围导入数据,从而实现精确的数据操作。 使用IronXL进行Excel数据管理在C#中的好处是什么? IronXL提供了Excel数据管理的灵活性,通过单元格、范围和聚合函数导入数据的功能。它简化了无需Interop的操作,并为高级数据处理提供了强大的API。 在导入Excel数据时,聚合函数如何使用? 您可以使用IronXL在从Excel文件导入数据时执行如Sum、Average、Min、Max等聚合函数,增强数据分析能力。 是否可以将Excel工作表转换为C#中的DataTables? 可以的,您可以通过使用IronXL加载工作簿并利用ToDataSet()方法,将Excel工作表转换为C#中的DataTables,从而促进广泛的数据管理。 我可以在C#中将Excel表格的第一行用作列标题吗? IronXL允许您通过将ToDataSet()函数的布尔参数设置为true来使用Excel表格的第一行作为列标题,从而将数据转换为结构化的DataTable。 我在哪里可以找到有关使用IronXL进行Excel操作的更多信息? 有关使用IronXL进行Excel操作的更多详情,请浏览IronXL提供的综合API参考,它提供了数据操作技术和高级功能的见解。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 准备开始了吗? Nuget 下载 1,738,553 | Version: 2025.11 刚刚发布 免费 NuGet 下载 总下载量:1,738,553 查看许可证