IronXL 开始 .NET MAUI Excel Create, Read and Edit Excel Files in .NET MAUI Curtis Chau 已更新:七月 22, 2025 Download IronXL NuGet 下载 DLL 下载 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article This article was translated from English: Does it need improvement? Translated View the article in English Introduction This How-To Guide explains how to create and read Excel files in .NET MAUI apps for Windows using IronXL. Let's get started. IronXL: C# Excel Library IronXL is a C# .NET library for reading, writing, and manipulating Excel files. It lets users create Excel documents from scratch, including the content and appearance of Excel, as well as metadata such as the title and author. The library also supports customization features for user interface like setting margins, orientation, page size, images and so on. It does not require any external frameworks, platform integration, or other third-party libraries for generating Excel files. It is self-contained and stand-alone. How to Read Excel Files in .NET MAUI Install C# library to read Excel file Ensure that all packages required to run MAUI applications are installed Create Excel files with intuitive APIs in Maui Load and view Excel files in the browser Save and export Excel files Install IronXL 今天在您的项目中使用 IronXL,免费试用。 第一步: 免费开始 To install IronXL, you can use the NuGet Package Manager Console in Visual Studio. Open the Console and enter the following command to install the IronXL library. Install-Package IronXL.Excel Creating Excel Files in C# using IronXL Design the Application Frontend Open the XAML page named MainPage.xaml and replace the code in it with the following snippet of code. <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MAUI_IronXL.MainPage"> <ScrollView> <VerticalStackLayout Spacing="25" Padding="30,0" VerticalOptions="Center"> <Label Text="Welcome to .NET Multi-platform App UI" SemanticProperties.HeadingLevel="Level2" SemanticProperties.Description="Welcome Multi-platform App UI" FontSize="18" HorizontalOptions="Center" /> <Button x:Name="createBtn" Text="Create Excel File" SemanticProperties.Hint="Click on the button to create Excel file" Clicked="CreateExcel" HorizontalOptions="Center" /> <Button x:Name="readExcel" Text="Read and Modify Excel file" SemanticProperties.Hint="Click on the button to read Excel file" Clicked="ReadExcel" HorizontalOptions="Center" /> </VerticalStackLayout> </ScrollView> </ContentPage> <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MAUI_IronXL.MainPage"> <ScrollView> <VerticalStackLayout Spacing="25" Padding="30,0" VerticalOptions="Center"> <Label Text="Welcome to .NET Multi-platform App UI" SemanticProperties.HeadingLevel="Level2" SemanticProperties.Description="Welcome Multi-platform App UI" FontSize="18" HorizontalOptions="Center" /> <Button x:Name="createBtn" Text="Create Excel File" SemanticProperties.Hint="Click on the button to create Excel file" Clicked="CreateExcel" HorizontalOptions="Center" /> <Button x:Name="readExcel" Text="Read and Modify Excel file" SemanticProperties.Hint="Click on the button to read Excel file" Clicked="ReadExcel" HorizontalOptions="Center" /> </VerticalStackLayout> </ScrollView> </ContentPage> XML The code above creates the layout for our basic .NET MAUI application. It creates one label and two buttons. One button is for creating an Excel file, and the second button provides support to read and modify the Excel file. Both elements are nested in a VerticalStackLayout parent element so that they will appear vertically aligned on all supported devices. Create Excel Files It's time to create the Excel file using IronXL. Open the MainPage.xaml.cs file and write the following method in the file. private void CreateExcel(object sender, EventArgs e) { // Create a new Workbook WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Create a Worksheet var sheet = workbook.CreateWorkSheet("2022 Budget"); // Set cell headers sheet["A1"].Value = "January"; sheet["B1"].Value = "February"; sheet["C1"].Value = "March"; sheet["D1"].Value = "April"; sheet["E1"].Value = "May"; sheet["F1"].Value = "June"; sheet["G1"].Value = "July"; sheet["H1"].Value = "August"; // Fill worksheet cells with random values Random r = new Random(); for (int i = 2; i <= 11; i++) { sheet["A" + i].Value = r.Next(1, 1000); sheet["B" + i].Value = r.Next(1000, 2000); sheet["C" + i].Value = r.Next(2000, 3000); sheet["D" + i].Value = r.Next(3000, 4000); sheet["E" + i].Value = r.Next(4000, 5000); sheet["F" + i].Value = r.Next(5000, 6000); sheet["G" + i].Value = r.Next(6000, 7000); sheet["H" + i].Value = r.Next(7000, 8000); } // Apply formatting (background and border) sheet["A1:H1"].Style.SetBackgroundColor("#d3d3d3"); sheet["A1:H1"].Style.TopBorder.SetColor("#000000"); sheet["A1:H1"].Style.BottomBorder.SetColor("#000000"); sheet["H2:H11"].Style.RightBorder.SetColor("#000000"); sheet["H2:H11"].Style.RightBorder.Type = IronXL.Styles.BorderType.Medium; sheet["A11:H11"].Style.BottomBorder.SetColor("#000000"); sheet["A11:H11"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Medium; // Apply formulas decimal sum = sheet["A2:A11"].Sum(); decimal avg = sheet["B2:B11"].Avg(); decimal max = sheet["C2:C11"].Max(); decimal min = sheet["D2:D11"].Min(); sheet["A12"].Value = "Sum"; sheet["B12"].Value = sum; sheet["C12"].Value = "Avg"; sheet["D12"].Value = avg; sheet["E12"].Value = "Max"; sheet["F12"].Value = max; sheet["G12"].Value = "Min"; sheet["H12"].Value = min; // Save and open the Excel file SaveService saveService = new SaveService(); saveService.SaveAndView("Budget.xlsx", "application/octet-stream", workbook.ToStream()); } private void CreateExcel(object sender, EventArgs e) { // Create a new Workbook WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Create a Worksheet var sheet = workbook.CreateWorkSheet("2022 Budget"); // Set cell headers sheet["A1"].Value = "January"; sheet["B1"].Value = "February"; sheet["C1"].Value = "March"; sheet["D1"].Value = "April"; sheet["E1"].Value = "May"; sheet["F1"].Value = "June"; sheet["G1"].Value = "July"; sheet["H1"].Value = "August"; // Fill worksheet cells with random values Random r = new Random(); for (int i = 2; i <= 11; i++) { sheet["A" + i].Value = r.Next(1, 1000); sheet["B" + i].Value = r.Next(1000, 2000); sheet["C" + i].Value = r.Next(2000, 3000); sheet["D" + i].Value = r.Next(3000, 4000); sheet["E" + i].Value = r.Next(4000, 5000); sheet["F" + i].Value = r.Next(5000, 6000); sheet["G" + i].Value = r.Next(6000, 7000); sheet["H" + i].Value = r.Next(7000, 8000); } // Apply formatting (background and border) sheet["A1:H1"].Style.SetBackgroundColor("#d3d3d3"); sheet["A1:H1"].Style.TopBorder.SetColor("#000000"); sheet["A1:H1"].Style.BottomBorder.SetColor("#000000"); sheet["H2:H11"].Style.RightBorder.SetColor("#000000"); sheet["H2:H11"].Style.RightBorder.Type = IronXL.Styles.BorderType.Medium; sheet["A11:H11"].Style.BottomBorder.SetColor("#000000"); sheet["A11:H11"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Medium; // Apply formulas decimal sum = sheet["A2:A11"].Sum(); decimal avg = sheet["B2:B11"].Avg(); decimal max = sheet["C2:C11"].Max(); decimal min = sheet["D2:D11"].Min(); sheet["A12"].Value = "Sum"; sheet["B12"].Value = sum; sheet["C12"].Value = "Avg"; sheet["D12"].Value = avg; sheet["E12"].Value = "Max"; sheet["F12"].Value = max; sheet["G12"].Value = "Min"; sheet["H12"].Value = min; // Save and open the Excel file SaveService saveService = new SaveService(); saveService.SaveAndView("Budget.xlsx", "application/octet-stream", workbook.ToStream()); } Private Sub CreateExcel(ByVal sender As Object, ByVal e As EventArgs) ' Create a new Workbook Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX) ' Create a Worksheet Dim sheet = workbook.CreateWorkSheet("2022 Budget") ' Set cell headers sheet("A1").Value = "January" sheet("B1").Value = "February" sheet("C1").Value = "March" sheet("D1").Value = "April" sheet("E1").Value = "May" sheet("F1").Value = "June" sheet("G1").Value = "July" sheet("H1").Value = "August" ' Fill worksheet cells with random values Dim r As New Random() For i As Integer = 2 To 11 sheet("A" & i).Value = r.Next(1, 1000) sheet("B" & i).Value = r.Next(1000, 2000) sheet("C" & i).Value = r.Next(2000, 3000) sheet("D" & i).Value = r.Next(3000, 4000) sheet("E" & i).Value = r.Next(4000, 5000) sheet("F" & i).Value = r.Next(5000, 6000) sheet("G" & i).Value = r.Next(6000, 7000) sheet("H" & i).Value = r.Next(7000, 8000) Next i ' Apply formatting (background and border) sheet("A1:H1").Style.SetBackgroundColor("#d3d3d3") sheet("A1:H1").Style.TopBorder.SetColor("#000000") sheet("A1:H1").Style.BottomBorder.SetColor("#000000") sheet("H2:H11").Style.RightBorder.SetColor("#000000") sheet("H2:H11").Style.RightBorder.Type = IronXL.Styles.BorderType.Medium sheet("A11:H11").Style.BottomBorder.SetColor("#000000") sheet("A11:H11").Style.BottomBorder.Type = IronXL.Styles.BorderType.Medium ' Apply formulas Dim sum As Decimal = sheet("A2:A11").Sum() Dim avg As Decimal = sheet("B2:B11").Avg() Dim max As Decimal = sheet("C2:C11").Max() Dim min As Decimal = sheet("D2:D11").Min() sheet("A12").Value = "Sum" sheet("B12").Value = sum sheet("C12").Value = "Avg" sheet("D12").Value = avg sheet("E12").Value = "Max" sheet("F12").Value = max sheet("G12").Value = "Min" sheet("H12").Value = min ' Save and open the Excel file Dim saveService As New SaveService() saveService.SaveAndView("Budget.xlsx", "application/octet-stream", workbook.ToStream()) End Sub $vbLabelText $csharpLabel This source code creates a workbook and worksheet using IronXL, sets cell values, and formats the cells. It also demonstrates how to use Excel formulas with IronXL. View Excel Files in the Browser Open the MainPage.xaml.cs file and write the following code. private void ReadExcel(object sender, EventArgs e) { // Store the path of the file string filepath = @"C:\Files\Customer Data.xlsx"; WorkBook workbook = WorkBook.Load(filepath); WorkSheet sheet = workbook.WorkSheets.First(); // Calculate the sum of a range decimal sum = sheet["B2:B10"].Sum(); // Modify a cell value and apply styles sheet["B11"].Value = sum; sheet["B11"].Style.SetBackgroundColor("#808080"); sheet["B11"].Style.Font.SetColor("#ffffff"); // Save and open the Excel file SaveService saveService = new SaveService(); saveService.SaveAndView("Modified Data.xlsx", "application/octet-stream", workbook.ToStream()); DisplayAlert("Notification", "Excel file has been modified!", "OK"); } private void ReadExcel(object sender, EventArgs e) { // Store the path of the file string filepath = @"C:\Files\Customer Data.xlsx"; WorkBook workbook = WorkBook.Load(filepath); WorkSheet sheet = workbook.WorkSheets.First(); // Calculate the sum of a range decimal sum = sheet["B2:B10"].Sum(); // Modify a cell value and apply styles sheet["B11"].Value = sum; sheet["B11"].Style.SetBackgroundColor("#808080"); sheet["B11"].Style.Font.SetColor("#ffffff"); // Save and open the Excel file SaveService saveService = new SaveService(); saveService.SaveAndView("Modified Data.xlsx", "application/octet-stream", workbook.ToStream()); DisplayAlert("Notification", "Excel file has been modified!", "OK"); } Private Sub ReadExcel(ByVal sender As Object, ByVal e As EventArgs) ' Store the path of the file Dim filepath As String = "C:\Files\Customer Data.xlsx" Dim workbook As WorkBook = WorkBook.Load(filepath) Dim sheet As WorkSheet = workbook.WorkSheets.First() ' Calculate the sum of a range Dim sum As Decimal = sheet("B2:B10").Sum() ' Modify a cell value and apply styles sheet("B11").Value = sum sheet("B11").Style.SetBackgroundColor("#808080") sheet("B11").Style.Font.SetColor("#ffffff") ' Save and open the Excel file Dim saveService As New SaveService() saveService.SaveAndView("Modified Data.xlsx", "application/octet-stream", workbook.ToStream()) DisplayAlert("Notification", "Excel file has been modified!", "OK") End Sub $vbLabelText $csharpLabel The source code loads the Excel file, applies a formula on a range of cells, and formats it with custom background and text coloring. Afterwards, the modified Excel file is saved and a notification is displayed. Save Excel Files In this section, we define the SaveService class that will save our Excel files in local storage. Create a "SaveService.cs" class and write the following code: using System; using System.IO; namespace MAUI_IronXL { public partial class SaveService { public partial void SaveAndView(string fileName, string contentType, MemoryStream stream); } } using System; using System.IO; namespace MAUI_IronXL { public partial class SaveService { public partial void SaveAndView(string fileName, string contentType, MemoryStream stream); } } Imports System Imports System.IO Namespace MAUI_IronXL Partial Public Class SaveService Public Partial Private Sub SaveAndView(ByVal fileName As String, ByVal contentType As String, ByVal stream As MemoryStream) End Sub End Class End Namespace $vbLabelText $csharpLabel Next, create a class named "SaveWindows.cs" inside the Platforms > Windows folder, and add the following code: using System; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Storage; using Windows.Storage.Pickers; using Windows.Storage.Streams; using Windows.UI.Popups; namespace MAUI_IronXL { public partial class SaveService { public async partial void SaveAndView(string fileName, string contentType, MemoryStream stream) { StorageFile stFile; string extension = Path.GetExtension(fileName); IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle; if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) { FileSavePicker savePicker = new FileSavePicker(); savePicker.DefaultFileExtension = ".xlsx"; savePicker.SuggestedFileName = fileName; savePicker.FileTypeChoices.Add("XLSX", new List<string> { ".xlsx" }); WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle); stFile = await savePicker.PickSaveFileAsync(); } else { StorageFolder local = ApplicationData.Current.LocalFolder; stFile = await local.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting); } if (stFile != null) { using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite)) { using (Stream outputStream = zipStream.AsStreamForWrite()) { outputStream.SetLength(0); stream.WriteTo(outputStream); await outputStream.FlushAsync(); } } MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully"); UICommand yesCmd = new("Yes"); msgDialog.Commands.Add(yesCmd); UICommand noCmd = new("No"); msgDialog.Commands.Add(noCmd); WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle); IUICommand cmd = await msgDialog.ShowAsync(); if (cmd.Label == yesCmd.Label) { await Windows.System.Launcher.LaunchFileAsync(stFile); } } } } } using System; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Storage; using Windows.Storage.Pickers; using Windows.Storage.Streams; using Windows.UI.Popups; namespace MAUI_IronXL { public partial class SaveService { public async partial void SaveAndView(string fileName, string contentType, MemoryStream stream) { StorageFile stFile; string extension = Path.GetExtension(fileName); IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle; if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) { FileSavePicker savePicker = new FileSavePicker(); savePicker.DefaultFileExtension = ".xlsx"; savePicker.SuggestedFileName = fileName; savePicker.FileTypeChoices.Add("XLSX", new List<string> { ".xlsx" }); WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle); stFile = await savePicker.PickSaveFileAsync(); } else { StorageFolder local = ApplicationData.Current.LocalFolder; stFile = await local.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting); } if (stFile != null) { using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite)) { using (Stream outputStream = zipStream.AsStreamForWrite()) { outputStream.SetLength(0); stream.WriteTo(outputStream); await outputStream.FlushAsync(); } } MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully"); UICommand yesCmd = new("Yes"); msgDialog.Commands.Add(yesCmd); UICommand noCmd = new("No"); msgDialog.Commands.Add(noCmd); WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle); IUICommand cmd = await msgDialog.ShowAsync(); if (cmd.Label == yesCmd.Label) { await Windows.System.Launcher.LaunchFileAsync(stFile); } } } } } Imports System Imports System.Collections.Generic Imports System.IO Imports System.Runtime.InteropServices.WindowsRuntime Imports Windows.Storage Imports Windows.Storage.Pickers Imports Windows.Storage.Streams Imports Windows.UI.Popups Namespace MAUI_IronXL Partial Public Class SaveService Public Async Sub SaveAndView(ByVal fileName As String, ByVal contentType As String, ByVal stream As MemoryStream) Dim stFile As StorageFile Dim extension As String = Path.GetExtension(fileName) Dim windowHandle As IntPtr = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle If Not Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons") Then Dim savePicker As New FileSavePicker() savePicker.DefaultFileExtension = ".xlsx" savePicker.SuggestedFileName = fileName savePicker.FileTypeChoices.Add("XLSX", New List(Of String) From {".xlsx"}) WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle) stFile = Await savePicker.PickSaveFileAsync() Else Dim local As StorageFolder = ApplicationData.Current.LocalFolder stFile = Await local.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting) End If If stFile IsNot Nothing Then Using zipStream As IRandomAccessStream = Await stFile.OpenAsync(FileAccessMode.ReadWrite) Using outputStream As Stream = zipStream.AsStreamForWrite() outputStream.SetLength(0) stream.WriteTo(outputStream) Await outputStream.FlushAsync() End Using End Using Dim msgDialog As New MessageDialog("Do you want to view the document?", "File has been created successfully") Dim yesCmd As New UICommand("Yes") msgDialog.Commands.Add(yesCmd) Dim noCmd As New UICommand("No") msgDialog.Commands.Add(noCmd) WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle) Dim cmd As IUICommand = Await msgDialog.ShowAsync() If cmd.Label = yesCmd.Label Then Await Windows.System.Launcher.LaunchFileAsync(stFile) End If End If End Sub End Class End Namespace $vbLabelText $csharpLabel Output Build and run the MAUI project. On successful execution, a window will open showing the content depicted in the image below. Figure 1 - Output Clicking on the "Create Excel File" button will open a separate dialog window. This window prompts users to choose a location and a filename by which to save a new (generated) Excel file. Specify the location and filename as directed, and click OK. Afterward, another dialog window will appear. Figure 2 - Create Excel Popup Opening the Excel file as directed in the popup will bring up a document as shown in the screenshot below. Figure 3 - Read and Modify Excel Popup Clicking on the "Read and Modify Excel File" button will load the previously generated Excel file and modify it with the custom background and text colors that we defined in an earlier section. Figure 4 - Excel Output When you open the modified file, you'll see the following output with table of contents. Figure 5 - Modified Excel Output Conclusion This explained how we can create, read and modify Excel files in the .NET MAUI application using the IronXL library. IronXL performs very well and does all operations with speed and accuracy. It is an excellent library for Excel operations, outperforming Microsoft Interop, as it doesn't require any installation of the Microsoft Office Suite on the machine. In addition, IronXL supports multiple operations like creating workbooks and worksheets, working with cell ranges, formatting, and exporting to various document types like CSV, TSV, and more. IronXL supports all project templates like Windows Form, WPF, ASP.NET Core, and many others. Refer to our tutorials for creating Excel files and reading Excel files for additional information about how to use IronXL. Quick Access Links Explore this How-To Guide on GitHub The source code for this project is available on GitHub. Use this code as an easy way to get up and running in just a few minutes. The project is saved as a Microsoft Visual Studio 2022 project, but is compatible with any .NET IDE. How to Read, Create, and Edit Excel Files in .NET MAUI Apps View the API Reference Explore the API Reference for IronXL, outlining the details of all of IronXL’s features, namespaces, classes, methods, fields, and enums. View the API Reference 常见问题解答 如何在 .NET MAUI 应用程序中创建 Excel 文件? 要在 .NET MAUI 项目中创建 Excel 文件,请使用 IronXL 库初始化新的工作簿和工作表。然后可以设置单元格值、应用 Excel 公式,并在使用自定义 SaveService 类保存文件之前自定义格式。 我可以在 .NET MAUI 应用程序中读取现有的 Excel 文件吗? 是的,您可以使用 IronXL 在 .NET MAUI 应用程序中加载和读取现有的 Excel 文件。该库允许您访问和修改单元格值、应用公式并实现自定义格式。 使用 IronXL 在 .NET MAUI 中进行 Excel 文件操作有什么好处? IronXL 提供了一个独立的解决方案,用于在 .NET MAUI 中进行 Excel 文件操作,消除了对 Microsoft Office 或 Interop 的需求。它支持高效地创建、读取和编辑 Excel 文件,并可以导出为 CSV 和 TSV 等多种格式。 如何在我的 .NET MAUI 项目中安装 IronXL? 您可以通过在 Visual Studio 中使用 NuGet 包管理器控制台安装 IronXL。在您的项目中添加库执行以下命令:Install-Package IronXL.Excel。 在 .NET MAUI 中可以编程地格式化 Excel 单元格吗? 是的,使用 IronXL,您可以在 .NET MAUI 中以编程方式格式化 Excel 单元格。这包括设置单元格样式、颜色和应用各种格式选项以增强 Excel 文件的外观。 如何在我的 .NET MAUI 应用程序中实现一个 SaveService 类来处理 Excel 文件? 要在 .NET MAUI 中实现一个 SaveService 类,您可以创建一个利用 IronXL 功能的类来处理将 Excel 文件保存到本地存储。这涉及定义用于指定文件路径和管理文件 I/O 操作的方法。 IronXL 支持 .NET 应用程序中的哪些项目模板? IronXL 支持多种 .NET 项目模板,包括 Windows Forms、WPF、ASP.NET Core 等,为从事不同应用程序开发的开发人员提供灵活性。 我在哪里可以找到 .NET MAUI Excel 项目的源代码? .NET MAUI Excel 项目使用 IronXL 的源代码在 GitHub 上可用。这使开发人员能够快速设置并在其应用程序中使用 Visual Studio 2022 进行 Excel 文件操作实验。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 准备开始了吗? Nuget 下载 1,686,155 | 版本: 2025.11 刚刚发布 免费 NuGet 下载 总下载量:1,686,155 查看许可证