在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
本文将对比和比较各种 .NET 技术通过最知名的库之一IronXL以编程方式与 Microsoft Excel 文档进行交互的方法。 此外,它还将为 Excel 电子表格的写入、读取和导出为 CSV 文件创建一个设置。
微软创建了专有的.NET Framework,这是一种主要与微软Windows兼容的软件框架。 它一直是主要的共通语言基础设施(CLI)实现,直到跨平台的.NET项目取而代之。 它提供跨多种不同编程语言的语言兼容性,并附带一个名为框架类库(FCL)的庞大类库。
一种名为 "逗号分隔值 "的文本文件格式使用逗号将数值分成不同的列。 表格数据以纯文本形式存储在 CSV 格式文件中,每一行通常对应一条数据记录。 在 CSV 文件中,每条记录都有相同数量的字段,字段之间用逗号隔开。
可以使用 IronXL for .NET C# Excel 库读取 Microsoft Excel 文档并将其转换为 CSV 文件。 无需安装Microsoft Office或Microsoft.Office.Interop.Excel
,用户可以使用IronXL,一个独立的 .NET 软件库。 它能够阅读多种电子表格格式。
IronXL 的简单 C# API 使在 .NET 环境中读取、编辑和生成 Excel 电子表格变得容易。 IronXL 提供对 Xamarin、Linux、macOS、Azure、.NET Core 和 .NET Framework 的完整支持。
IronXL 可以处理多种值,包括日期、货币、百分比、文本、数字、公式等 Excel 列数据类型。
要了解如何将数据导出到Excel,请参考此教程。
在使用IronXL库之前,打开Visual Studio并创建一个.NET项目。 Visual Studio 可以使用任何版本,但建议使用最新版本。 为了保持简洁,本文将使用控制台应用程序作为示例。
打开 Visual Studio,进入“文件”菜单并选择“新建项目”。 从各种 .NET 项目模板中选择“控制台应用程序”。
之后输入项目的位置和名称。
在Visual Studio中创建新项目
可以使用 Framework 下拉菜单选择 .NET Framework。 本项目选择 .NET Framework 4.7。 接下来,点击创建按钮。
当应用程序生成解决方案时,program.cs
文件将打开,您可以输入代码并构建/运行程序。
一旦控制台应用程序项目创建成功,Program.cs 文件将打开。
为了测试代码,下一步是添加 IronXL 库。
安装 IronXL 库,因为下一步修复需要它。 为此,请在 NuGet 软件包管理器控制台中输入以下命令:
Install-Package IronXL.Excel
在 NuGet 包管理器控制台中安装 IronXL 包
另一种方法是使用 NuGet 软件包管理器查找软件包 "IronXL",然后从与 IronXL 相关联的所有 NuGet 软件包列表中选择必要的软件包进行下载。
使用 NuGet 包管理器安装 IronXL 包
IronXL 使创建字符串数组并转换为 CSV 文件变得简单快捷。 因此,编写 CSV 文件变得更加简单。 首先,包含 IronXL 名称空间,如下代码截图所示。 然后,在介绍完 IronXL 后,在下面的代码中使用 IronXL 的类和方法。
包括 IronXL 命名空间
可以使用 IronXL.Excel 创建 Excel 文件,然后将其转化为工作簿对象。 该对象提供了几种使用它们的方法。 以下代码示例通过将数组字符串转换为 Excel 工作表来生成 Excel 文件。
using IronXL;
using IronXL.Options;
using System.Data;
static void Main ( string [ ] args ) {
string [] students = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };
var workBook = WorkBook.Create(ExcelFileFormat.XLS);
var writer = workBook.DefaultWorkSheet;
int rowCount = 1;
foreach(var student in students)
{
writer ["A" + (rowCount)].Value = rowCount.ToString();
writer ["B" + (rowCount)].Value = student.ToString();
rowCount++;
}
workBook.SaveAsCsv("Sample.csv", ";");
// or
var stream = workBook.ToStream();
}
using IronXL;
using IronXL.Options;
using System.Data;
static void Main ( string [ ] args ) {
string [] students = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };
var workBook = WorkBook.Create(ExcelFileFormat.XLS);
var writer = workBook.DefaultWorkSheet;
int rowCount = 1;
foreach(var student in students)
{
writer ["A" + (rowCount)].Value = rowCount.ToString();
writer ["B" + (rowCount)].Value = student.ToString();
rowCount++;
}
workBook.SaveAsCsv("Sample.csv", ";");
// or
var stream = workBook.ToStream();
}
Imports IronXL
Imports IronXL.Options
Imports System.Data
Shared Sub Main(ByVal args() As String)
Dim students() As String = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF" }
Dim workBook = WorkBook.Create(ExcelFileFormat.XLS)
Dim writer = workBook.DefaultWorkSheet
Dim rowCount As Integer = 1
For Each student In students
writer ("A" & (rowCount)).Value = rowCount.ToString()
writer ("B" & (rowCount)).Value = student.ToString()
rowCount += 1
Next student
workBook.SaveAsCsv("Sample.csv", ";")
' or
Dim stream = workBook.ToStream()
End Sub
上述代码-CSV 示例将数组导出到 Excel 文件。构建数组后,将创建列头。 在建立第一列时,一行一行地添加。 WorkBook
对象在数据添加到字符串数组后被创建。 您可以使用WorkBook
对象向Excel表格中添加数据,然后将其保存到其他位置。 目标是通过创建WorkSheet
对象来创建工作表,该对象可以链接到工作簿对象。
在将每个项目添加到电子表格之前,使用foreach
循环从数组字符串中读取每个项目。 当所有数据输入到工作表后,使用SaveAsCsv
方法将数据保存为CSV文件。 除了分隔符,文件名和位置也可以作为可选参数提供。 然后,库会协助将数据写入新的 CSV 文件。如果您想读取 CSV 文件而不是使用 Microsoft Excel,可以使用记事本。 IronXL 还支持通过使用Save
方法将数据存储为多种文件格式,如XLS、CSV和XLSX。 或者将工作簿转化为数据流,然后将数据写入所需位置。
输出Excel文件
上面是运行的代码样本的输出结果。 截图中新生成的 Excel 表中,字符串数组中的每项数据都是独立添加的。
要了解有关如何使用IronXL将数据导出到CSV的更多信息,请参考此分步教程。
最受欢迎的Excel附加组件之一是IronXL。 它不依赖于任何其他外部库。 翻译内容自成一体,无需安装 Microsoft Excel。 它通过多种渠道运作。
IronXL 提供了一个完整的解决方案,用于所有以编程方式执行的 Microsoft Excel 文档相关任务。 这些工具可以执行计算、对字符串或数字排序、修剪、添加、定位和替换、合并和取消合并、保存文件等操作。 除了检查电子表格数据外,您还可以定义单元格数据类型。 它可以让您读写文件,并使处理 Excel 数据变得更容易。
IronXL 提供免费试用许可证,让用户有机会免费试用其所有主要功能。
IronXL 在发布时以 $749 提供。 如果用户希望获得软件的更新和帮助,也可以选择支付一年的订阅费。 IronXL 可提供无限制再分发的保护,但需支付额外费用。 如需获取更准确的定价信息,请访问IronXL的许可证页面。