跳至页脚内容
与其他组件比较

.NET将 Excel 文件读取到数组: IronXL与 Microsoft Interop 的比较

在.NET中将 Excel 数据读入数组需要加载工作簿、选择工作表、遍历行和列,并将每个单元格的值存储在二维数组中。 使用IronXL,只需几行代码即可完成此操作,无需安装 Microsoft Office。安装NuGet包,调用 WorkBook.Load,获取 Range,然后循环遍历其 Rows 集合来填充数组。

立即开始免费试用,探索IronXL如何简化 Visual Studio 项目中的 Excel 自动化。

这些解决方案乍看之下有何异同?

IronXL与 Microsoft Office Interop——VB .NET数组操作的功能比较
特征 IronXL Microsoft Office Interop
需要安装办公软件
NuGet 安装 是的——一个包裹 否 -- COM 参考
服务器/CI 环境支持 数量有限
COM对象生命周期管理 无需 必需的
支持的格式 XLSX、XLS、CSV、TSV、JSON XLSX、XLS(仅限 Excel)
类型安全的 API 部分 -- 后期 COM
Linux/macOS 支持 是的(.NET 6+)
异常处理风格 标准.NET异常 COM 异常 + 手动清理

如何在.NET项目中安装IronXL ?

将IronXL添加到任何.NET项目的最快方法是通过NuGet包管理器。 在 Visual Studio 中打开软件包管理器控制台并运行:

Install-Package IronXl.Excel
Install-Package IronXl.Excel
SHELL

或者,使用.NET CLI:

dotnet add package IronXl.Excel
dotnet add package IronXl.Excel
SHELL

安装完成后,在 VB .NET模块的顶部添加 Imports IronXL。 无需安装 Office—— IronXL完全通过其自身的解析引擎读取和写入 Excel 文件。

对于面向旧框架或需要特定版本锁定的项目, IronXL NuGet页面列出了所有已发布的版本。 IronXL文档提供了 Visual Studio 2019、2022 和.NET CLI 的安装指南。

开发人员如何使用IronXL将 Excel 数据读入数组?

IronXL提供了一个简洁的 API,用于打开工作簿、选择范围和遍历单元格值,而无需本地安装 Office。 WorkBook.Load 方法接受一个文件路径,并返回一个 WorkBook 对象,该对象公开所有工作表。

Imports IronXL

Module ReadExcelToArray
    Sub Main()
        ' Load the Excel workbook from a file path
        Dim workbook As WorkBook = WorkBook.Load("SalesData.xlsx")

        ' Access the first worksheet in the workbook
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' Define the cell range to extract
        Dim dataRange As IronXl.Range = sheet.GetRange("A1:D5")

        ' Determine array dimensions from the range
        Dim rowCount As Integer = dataRange.Rows.Count
        Dim colCount As Integer = dataRange.Columns.Count
        Dim salesArray(rowCount - 1, colCount - 1) As String

        ' Populate the two-dimensional array from cell values
        Dim rowIndex As Integer = 0
        For Each row As RangeRow In dataRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                salesArray(rowIndex, colIndex) = cell.StringValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        ' Print each row to the console
        Console.WriteLine("Data loaded into array:")
        For i As Integer = 0 To rowCount - 1
            For j As Integer = 0 To colCount - 1
                Console.Write(salesArray(i, j) & vbTab)
            Next
            Console.WriteLine()
        Next
    End Sub
End Module
Imports IronXL

Module ReadExcelToArray
    Sub Main()
        ' Load the Excel workbook from a file path
        Dim workbook As WorkBook = WorkBook.Load("SalesData.xlsx")

        ' Access the first worksheet in the workbook
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' Define the cell range to extract
        Dim dataRange As IronXl.Range = sheet.GetRange("A1:D5")

        ' Determine array dimensions from the range
        Dim rowCount As Integer = dataRange.Rows.Count
        Dim colCount As Integer = dataRange.Columns.Count
        Dim salesArray(rowCount - 1, colCount - 1) As String

        ' Populate the two-dimensional array from cell values
        Dim rowIndex As Integer = 0
        For Each row As RangeRow In dataRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                salesArray(rowIndex, colIndex) = cell.StringValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        ' Print each row to the console
        Console.WriteLine("Data loaded into array:")
        For i As Integer = 0 To rowCount - 1
            For j As Integer = 0 To colCount - 1
                Console.Write(salesArray(i, j) & vbTab)
            Next
            Console.WriteLine()
        Next
    End Sub
End Module
$vbLabelText   $csharpLabel

了解工作簿和工作表对象

WorkBook.Load 支持 XLSX、XLS、CSV 和 TSV 文件。 加载完成后,workbook.DefaultWorkSheet 返回第一个工作表。 您还可以通过名称访问工作表(workbook.WorkSheets(0))。

GetRange("A1:D5") 调用返回一个 IronXl.Range,该 RowsColumns 集合。 每个 RangeRow 都会迭代 Cell 对象,而 cell.StringValue 则会返回显示字符串,无论底层单元格类型如何。

如何处理输入的单元格值?

IronXL单元格除了 StringValue 之外,还公开类型化属性:

  • cell.IntValue -- 将单元格解析为整数
  • cell.DoubleValue -- 将单元格解析为双精度浮点数
  • cell.DateTimeValue -- 解析日期格式的单元格
  • cell.IsFormula -- 表示单元格是否包含公式

对于财务数据,将数组声明为 Double,并直接赋值给 cell.DoubleValue。 这样可以避免在下游处理过程中进行字符串到数字的转换。

Imports IronXL

Module ReadExcelToDoubleArray
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Revenue.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        Dim dataRange As IronXl.Range = sheet.GetRange("B2:E10")

        Dim rowCount As Integer = dataRange.Rows.Count
        Dim colCount As Integer = dataRange.Columns.Count
        Dim revenueArray(rowCount - 1, colCount - 1) As Double

        Dim rowIndex As Integer = 0
        For Each row As RangeRow In dataRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                revenueArray(rowIndex, colIndex) = cell.DoubleValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        ' Calculate column totals
        For j As Integer = 0 To colCount - 1
            Dim total As Double = 0
            For i As Integer = 0 To rowCount - 1
                total += revenueArray(i, j)
            Next
            Console.WriteLine($"Column {j + 1} total: {total:C}")
        Next
    End Sub
End Module
Imports IronXL

Module ReadExcelToDoubleArray
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Revenue.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        Dim dataRange As IronXl.Range = sheet.GetRange("B2:E10")

        Dim rowCount As Integer = dataRange.Rows.Count
        Dim colCount As Integer = dataRange.Columns.Count
        Dim revenueArray(rowCount - 1, colCount - 1) As Double

        Dim rowIndex As Integer = 0
        For Each row As RangeRow In dataRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                revenueArray(rowIndex, colIndex) = cell.DoubleValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        ' Calculate column totals
        For j As Integer = 0 To colCount - 1
            Dim total As Double = 0
            For i As Integer = 0 To rowCount - 1
                total += revenueArray(i, j)
            Next
            Console.WriteLine($"Column {j + 1} total: {total:C}")
        Next
    End Sub
End Module
$vbLabelText   $csharpLabel

输出

VB .NET将 Excel 文件读取到数组: IronXL与 Microsoft Interop 对比:图 1 - IronXL与 Office Excel 在 VB .NET将 Excel 文件读取到数组方面的比较

此代码示例演示了 IronXL 直观的 API。 WorkBook.Load 方法直接从您指定的文件夹打开 Excel 文件,而 Range 对象提供对 Excel 电子表格中特定单元格区域的访问。 与传统的 VBA 宏不同,这种方法是完全类型安全的,并且集成到.NET生态系统中。

立即开始使用 IronXL。
green arrow pointer

什么是传统的 Microsoft Office 互操作方法?

Microsoft Office Interop 依靠 COM 自动化与 Excel 应用程序实例连接。 要在 Visual Studio 中进行此设置,请导航至"项目"菜单,选择"添加引用",然后在 COM 选项卡下搜索 Microsoft Excel 对象库。 运行该代码的每台计算机上都必须安装本地 Excel。

Imports Microsoft.Office.Interop.Excel

Module InteropExcelArray
    Sub Main()
        Dim excelApp As New Application()
        Dim workbooks As Workbooks = excelApp.Workbooks
        Dim workbook As Workbook = 无thing
        Dim sheet As Worksheet = 无thing

        Try
            ' Suppress screen updates during processing
            excelApp.ScreenUpdating = False

            ' Open the workbook by full file path
            workbook = workbooks.Open("C:\Data\SalesData.xlsx")

            ' Reference the first worksheet
            sheet = CType(workbook.Sheets(1), Worksheet)

            ' Define a range and pull values into an object array
            Dim dataRange As Range = sheet.Range("A1", "D5")
            Dim values(,) As Object = CType(dataRange.Value, Object(,))

            ' COM arrays are 1-based, so enumerate from index 1
            Dim rows As Integer = values.GetUpperBound(0)
            Dim columns As Integer = values.GetUpperBound(1)

            For i As Integer = 1 To rows
                Dim line As String = ""
                For j As Integer = 1 To columns
                    line &= values(i, j).ToString() & vbTab
                Next
                Console.WriteLine(line)
            Next

        Catch ex As Exception
            Console.WriteLine("Error: " & ex.Message)

        Finally
            ' Release COM objects to prevent orphaned Excel processes
            If sheet Is无t 无thing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet)
            End If
            If workbook Is无t 无thing Then
                workbook.Close(False)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook)
            End If
            excelApp.Quit()
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
        End Try
    End Sub
End Module
Imports Microsoft.Office.Interop.Excel

Module InteropExcelArray
    Sub Main()
        Dim excelApp As New Application()
        Dim workbooks As Workbooks = excelApp.Workbooks
        Dim workbook As Workbook = 无thing
        Dim sheet As Worksheet = 无thing

        Try
            ' Suppress screen updates during processing
            excelApp.ScreenUpdating = False

            ' Open the workbook by full file path
            workbook = workbooks.Open("C:\Data\SalesData.xlsx")

            ' Reference the first worksheet
            sheet = CType(workbook.Sheets(1), Worksheet)

            ' Define a range and pull values into an object array
            Dim dataRange As Range = sheet.Range("A1", "D5")
            Dim values(,) As Object = CType(dataRange.Value, Object(,))

            ' COM arrays are 1-based, so enumerate from index 1
            Dim rows As Integer = values.GetUpperBound(0)
            Dim columns As Integer = values.GetUpperBound(1)

            For i As Integer = 1 To rows
                Dim line As String = ""
                For j As Integer = 1 To columns
                    line &= values(i, j).ToString() & vbTab
                Next
                Console.WriteLine(line)
            Next

        Catch ex As Exception
            Console.WriteLine("Error: " & ex.Message)

        Finally
            ' Release COM objects to prevent orphaned Excel processes
            If sheet Is无t 无thing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet)
            End If
            If workbook Is无t 无thing Then
                workbook.Close(False)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook)
            End If
            excelApp.Quit()
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
        End Try
    End Sub
End Module
$vbLabelText   $csharpLabel

为什么 COM 对象管理如此重要?

互操作方法需要格外注意 COM 对象生命周期管理。 Excel 应用程序返回的每个对象(工作簿、工作表、区域和单元格)都包含一个引用计数的 COM 指针。 如果未能对每个对象调用 Marshal.ReleaseComObject,则 EXCEL.EXE 进程会在后台静默运行。

在服务器上,孤立进程会随着时间的推移而不断积累,最终耗尽可用内存或文件句柄。 上面的 Try...Finally 模式是最低限度的安全方法,但许多企业代码库会添加一个专门的 COM 清理实用程序来处理嵌套对象图。

Interop 数组索引约定也与标准 VB .NET数组不同:基于 COM 的数组从索引 1 开始,而不是 0。这意味着任何行或列循环都必须考虑差一的差异,这是运行时错误和数据截断错误的常见来源。

哪种解决方案能提供更好的开发者体验?

在评估这些方法在生产应用中的可行性时,有几个因素表明IronXL是更优的选择:

部署简便性: IronXL通过单个NuGet包进行安装,而 Interop 需要复杂的环境配置。 当您的程序需要在构建服务器或云函数上处理 XLSX 文件,而该服务器上不存在用户会话时,这一点就非常重要了。

代码可维护性:通过IronXL读取数据表可以保持代码简洁易读。 行数和列数是一等属性。 使用 Interop,您可以计算索引为 1 的 COM 数组的上限,并手动转换后期边界 Object 值。

格式灵活性:除了 XLSX 等标准 Excel 工作簿格式外, IronXL还原生支持 CSV 解析,这在测试数据以多种格式到达时非常有用。 该库还可以创建新的工作簿文件,并以同样简单的方式将值写回单元格。 请参阅IronXL格式指南以获取完整列表。

错误处理: IronXL适用标准的.NET异常模式,使得错误恢复变得简单。 基于 COM 的异常需要额外的处理逻辑,如果管理不当,可能会导致 Excel 实例持续运行。

跨平台支持: IronXL可通过.NET 6 及更高版本在 Linux 和 macOS 上运行。 Interop 仅适用于 Windows 系统,因为它依赖于 Win32 COM 子系统。

.NET中数组读取的性能与维护权衡
标准 IronXL Microsoft Interop
基本数组读取的代码行数 约20 40岁以上
需要手动清理 COM 对象
无需安装 Excel 即可运行
可在 Docker/CI 流水线中运行
数组索引约定 基于 0 的(.NET Standard) 基于 1 的(COM 标准)

如何在.NET中使用动态Excel区域?

生产电子表格的行数通常不是固定的。 IronXL在每个工作表上提供 UsedRange 属性,该属性返回所有非空单元格的边界矩形。 你可以使用这个来代替硬编码的范围字符串。

Imports IronXL

Module DynamicRangeExample
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("DynamicData.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' Get the bounding range of all populated cells
        Dim usedRange As IronXl.Range = sheet.UsedRange

        Dim rowCount As Integer = usedRange.Rows.Count
        Dim colCount As Integer = usedRange.Columns.Count
        Dim dynamicArray(rowCount - 1, colCount - 1) As String

        Dim rowIndex As Integer = 0
        For Each row As RangeRow In usedRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                dynamicArray(rowIndex, colIndex) = cell.StringValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        Console.WriteLine($"Loaded {rowCount} rows x {colCount} columns from UsedRange.")
    End Sub
End Module
Imports IronXL

Module DynamicRangeExample
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("DynamicData.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' Get the bounding range of all populated cells
        Dim usedRange As IronXl.Range = sheet.UsedRange

        Dim rowCount As Integer = usedRange.Rows.Count
        Dim colCount As Integer = usedRange.Columns.Count
        Dim dynamicArray(rowCount - 1, colCount - 1) As String

        Dim rowIndex As Integer = 0
        For Each row As RangeRow In usedRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                dynamicArray(rowIndex, colIndex) = cell.StringValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        Console.WriteLine($"Loaded {rowCount} rows x {colCount} columns from UsedRange.")
    End Sub
End Module
$vbLabelText   $csharpLabel

加载后如何过滤和验证数组数据?

数组填充完成后,常见的后处理步骤包括:

-跳过标题行:从索引 1 而不是 0 开始显示循环,以省略列标题。 -删除空白:调用 .Trim() on cell.StringValue 删除从电子表格复制的前导和尾随空格。 -处理空单元格: IronXL对空白单元格返回空字符串,因此在大多数情况下不需要进行空值检查。 -验证数值范围:加载双精度浮点数后,在存储之前应用范围检查,以捕获包含占位符值(如 -1 或 9999)的单元格。

对于较大的数据集,请考虑使用 List(Of T) 或强类型类,而不是原始的二维数组。 将数据加载到类型化对象中,可以简化下游代码的阅读和测试。IronXL IronXL模型参考文档记录了所有可用的单元格属性和工作表方法。

如何将.NET数组导出回Excel?

IronXL支持使用与读取相同的 API 将数组数据写回工作表。 这适用于在内存中转换数据并将结果保存为新的 Excel 文件的情况。

Imports IronXL

Module WriteArrayToExcel
    Sub Main()
        ' Create a new workbook and worksheet
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Results")

        Dim outputArray(,) As String = {
            {"Region", "Q1", "Q2", "Q3"},
            {"无rth", "12500", "14200", "15800"},
            {"South", "9800", "10500", "11300"},
            {"East", "8200", "9100", "9900"}
        }

        ' Write the array contents to the worksheet cell by cell
        For i As Integer = 0 To outputArray.GetUpperBound(0)
            For j As Integer = 0 To outputArray.GetUpperBound(1)
                Dim cellAddress As String = IronXl.ExcelAddress.ToAddress(i, j)
                sheet(cellAddress).Value = outputArray(i, j)
            Next
        Next

        workbook.SaveAs("Output.xlsx")
        Console.WriteLine("Workbook saved as Output.xlsx")
    End Sub
End Module
Imports IronXL

Module WriteArrayToExcel
    Sub Main()
        ' Create a new workbook and worksheet
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Results")

        Dim outputArray(,) As String = {
            {"Region", "Q1", "Q2", "Q3"},
            {"无rth", "12500", "14200", "15800"},
            {"South", "9800", "10500", "11300"},
            {"East", "8200", "9100", "9900"}
        }

        ' Write the array contents to the worksheet cell by cell
        For i As Integer = 0 To outputArray.GetUpperBound(0)
            For j As Integer = 0 To outputArray.GetUpperBound(1)
                Dim cellAddress As String = IronXl.ExcelAddress.ToAddress(i, j)
                sheet(cellAddress).Value = outputArray(i, j)
            Next
        Next

        workbook.SaveAs("Output.xlsx")
        Console.WriteLine("Workbook saved as Output.xlsx")
    End Sub
End Module
$vbLabelText   $csharpLabel

ExcelAddress.ToAddress(row, column) 辅助程序将基于零的整数坐标转换为 A1 表示法字符串。 这样可以保持写入循环的简洁,避免手动计算单元地址。 请查看IronXL写作教程,了解更多模式,包括公式注入和样式应用。

如何将多个工作表中的数据分别读取到不同的数组中?

有些工作簿会将数据存储在多个工作表中——例如,每个月一个工作表或每个地区一个工作表。 IronXL通过 workbook.WorkSheets 公开所有工作表,您可以遍历该工作表,将每个工作表加载到它自己的数组中。

Imports IronXL

Module MultiSheetArrayLoader
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("AnnualReport.xlsx")

        For Each sheet As WorkSheet In workbook.WorkSheets
            Console.WriteLine($"Loading sheet: {sheet.Name}")

            Dim dataRange As IronXl.Range = sheet.UsedRange
            Dim rowCount As Integer = dataRange.Rows.Count
            Dim colCount As Integer = dataRange.Columns.Count
            Dim sheetArray(rowCount - 1, colCount - 1) As String

            Dim rowIndex As Integer = 0
            For Each row As RangeRow In dataRange.Rows
                Dim colIndex As Integer = 0
                For Each cell As Cell In row
                    sheetArray(rowIndex, colIndex) = cell.StringValue
                    colIndex += 1
                Next
                rowIndex += 1
            Next

            Console.WriteLine($"  Loaded {rowCount} rows x {colCount} columns.")
        Next
    End Sub
End Module
Imports IronXL

Module MultiSheetArrayLoader
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("AnnualReport.xlsx")

        For Each sheet As WorkSheet In workbook.WorkSheets
            Console.WriteLine($"Loading sheet: {sheet.Name}")

            Dim dataRange As IronXl.Range = sheet.UsedRange
            Dim rowCount As Integer = dataRange.Rows.Count
            Dim colCount As Integer = dataRange.Columns.Count
            Dim sheetArray(rowCount - 1, colCount - 1) As String

            Dim rowIndex As Integer = 0
            For Each row As RangeRow In dataRange.Rows
                Dim colIndex As Integer = 0
                For Each cell As Cell In row
                    sheetArray(rowIndex, colIndex) = cell.StringValue
                    colIndex += 1
                Next
                rowIndex += 1
            Next

            Console.WriteLine($"  Loaded {rowCount} rows x {colCount} columns.")
        Next
    End Sub
End Module
$vbLabelText   $csharpLabel

了解表格导航

workbook.WorkSheets 集合采用零索引,并支持 For Each 和索引访问。 使用 sheet.Name 以编程方式识别工作表,并根据已知的工作表名称进行分支逻辑。 IronXL工作表指南详细介绍了范围选择、命名范围和动态范围检测。

对于包含数十个工作表的文档,在加载之前按名称进行筛选,以避免处理无关的工作表并浪费内存。

开发者应该了解哪些关于互操作数组格式的知识?

Interop 方法使用 COM 的 1 索引将单元格数据作为 Object(,) 数组返回。 第一行的第一个元素位于 values(1, 1),而不是 values(0, 0)。 这是导致差一错误的一个常见原因。

另一个需要关注的问题是空值处理:Interop 会为空单元格返回 无thing。 对空引用调用 .ToString() 会在运行时抛出 NullReferenceException 异常。您必须在每个单元格访问周围添加空值保护:

If values(i, j) Is无t 无thing Then
    line &= values(i, j).ToString() & vbTab
End If
If values(i, j) Is无t 无thing Then
    line &= values(i, j).ToString() & vbTab
End If
$vbLabelText   $csharpLabel

IronXL通过为空白单元格返回空字符串来消除此问题,这意味着循环代码无需任何额外的保护即可工作。

有关 Interop 使用的 Excel 对象模型的权威信息,请参阅Microsoft Excel VBA 参考MSDN Office 互操作文档

下一步计划是什么?

将 Excel 数据读入数组是.NET电子表格中最常见的任务之一,而IronXL使实现该任务变得非常简单。 采取下一步行动:

-下载IronXL :通过NuGet安装 (Install-Package IronXl.Excel) 并按照入门指南进行操作。 -探索格式支持: IronXL可读取和写入 XLSX、XLS、CSV、TSV 和 JSON。 详情请参阅支持的格式页面。 -尝试高级功能:对范围进行排序、应用公式、设置单元格样式和生成图表——所有这些都无需安装 Excel。 请查看IronXL功能概述以获取完整的功能列表。 -浏览代码示例IronXL代码示例库提供了数十种常见电子表格任务的复制粘贴代码片段。 -查看许可:对于生产部署, IronXL许可提供开发人员、团队和 OEM 级别。

VB .NET将 Excel 文件读取到数组: IronXL与 Microsoft Interop 对比:图 2 - IronXL输出

IronXL和 Microsoft Office Interop 都可以将 Excel 数据读取到数组中,但IronXL通过其独立于 Office 的架构、更简洁的 API 和灵活的部署选项,提供了更卓越的开发体验。 该库消除了 COM 对象管理和系统依赖等常见痛点,同时提供了对电子表格自动化高级功能的访问。

IronXL文档中心,您可以查看示例项目、资源和文档,探索IronXL的全部功能。 对于企业应用, IronXL 的许可选项提供灵活的条款,以适应任何项目范围。

常见问题解答

使用.NET将Excel文件读入数组的最佳方法是什么?

在.NET中,使用IronXL或 Microsoft Office Interop 可以有效地将 Excel 文件读取到数组中。IronXL 提供了一种简化且高效的方法,无需安装 Microsoft Excel,并降低了代码的复杂性。

IronXL与 Microsoft Office Interop 在读取 Excel 文件方面相比如何?

与 Microsoft Office Interop 相比, IronXL提供了一种更精简、更快速的方法将 Excel 文件读取到数组中。它无需在服务器上安装 Excel,并且处理 Excel 文件时开销更小。

我可以在不安装微软Excel的情况下处理Excel数据吗?

是的,使用IronXL无需安装 Microsoft Excel 即可处理 Excel 数据。这使其成为服务器环境中安装 Excel 的理想选择。

为什么我应该考虑在.NET中使用IronXL进行Excel操作?

IronXL提供直观的 API,可处理各种 Excel 文件格式,从而简化 Excel 操作。它确保更快的性能和更便捷的部署,尤其是在无法安装 Microsoft Excel 的环境中。

IronXL是否适合在.NET中处理大型 Excel 数据集?

是的, IronXL针对性能进行了优化,可以高效地处理大型 Excel 数据集,提供快速的数据提取和处理。

有哪些使用.NET将Excel文件读取到数组中的代码示例?

该指南提供了IronXL和 Microsoft Office Interop 的工作代码示例,演示了如何在.NET中有效地将 Excel 文件读入数组。

IronXL支持不同的Excel文件格式吗?

IronXL支持多种 Excel 文件格式,包括 XLSX、XLS、CSV 等,使其能够灵活满足各种数据处理需求。

与 Microsoft Office Interop 相比,使用IronXL有哪些优势?

IronXL更易于使用,无需安装 Excel,并且性能更佳。它简化了代码,并减少了与 Microsoft Office Interop 中 COM 交互相关的潜在错误。

IronXL处理二维数组的方式与 Microsoft Interop 有何不同?

IronXL提供将 Excel 数据转换为二维数组的直接方法,与 Microsoft Interop 所需的更复杂的设置相比,确保了更高效、更直接的方法。

将Excel文件读取到数组中的最佳实践是什么?

最佳实践包括为您的环境选择合适的工具,例如IronXL ,因为它易于使用且性能优异;以及确保高效的代码结构,以便有效地管理内存和处理能力。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me