在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
本博客将对比如何在.NET技术中使用最流行的库之一 IronXL 以编程方式与 CSV 格式或标准 Excel 格式的 Microsoft Excel 文档进行交互。
使用 C# 中的 IronXL 库,您可以轻松读取 Microsoft Excel 文档并将其转换为 CSV 文件。 IronXL 是一个独立的 .NET 软件库,可以读取各种电子表格格式,无需安装 Microsoft Excel 或依赖 Microsoft Office Interop Excel。
IronXL 是领先的 C# Excel 电子表格库之一,兼容 .NET Core 和 .NET Framework。 它支持各种 .NET Framework,包括 Web 应用程序、Windows 窗体应用程序和控制台应用程序。 使用 IronXL.Excel 可以快速、直接地读取 Excel 文件。 它支持多种 Excel 文件格式,包括 XLSX、XLS、CSV、TSV、XLST、XLSM 等。 您可以导入、编辑、导出数据表、导出数据集并执行许多其他操作。 还可以导出和保存不同扩展名的文件。
借助 IronXL 直观的 C# API,您可以在 .NET 环境中毫不费力地读取、修改和创建 Excel 电子表格文件。 它为 .NET Core、.NET Framework、Xamarin、Mobile、Linux、macOS 和 Azure 提供全面支持。
IronXL.Excel 可以像 Microsoft Excel 一样执行计算,并支持多种列数据格式,如文本、整数、公式、日期、货币和百分比。
要了解更多信息,请点击IronXL 网站。
在使用 IronXL for .NET Framework 之前,必须在 Visual Studio 中创建一个 .NET 项目。 任何版本的 Visual Studio 都可以使用,但建议使用最新版本。 您可以根据自己的要求创建各种项目模板或类似 Windows 窗体的应用程序。 为简化工作,本教程将使用 Windows 窗体应用程序。
在Visual Studio中创建新项目
选择项目模板后,请提供项目的名称和位置。
配置项目
接下来,选择以下结构。 本项目将使用 .NET Framework 4.7。
.NET Framework 选择
生成项目文件后,您可以在设计器视图中打开Form1.cs
文件以插入程序代码、设计界面,并构建/运行程序。 然后,您需要下载解决方案所需的 IronXL 库。 您可以在软件包管理器中使用以下代码下载软件包:
Install-Package IronXL.Excel
在包管理控制台中安装IronXL软件包
您也可以使用 NuGet 软件包管理器搜索并下载 "IronXL "软件包。 NuGet 包管理器为管理项目中的依赖关系提供了一种便捷的方式。
在 NuGet 包管理器 UI 中搜索并安装 IronXL 包
对于此表单,在表单上放置一个DataGridView
控件,以将必要的Excel文件加载到DataGridView
控件中。
IronXL.Excel 是一个功能强大的 Excel 库,只需几行代码即可读取 Excel 文件。 以下是一个示例代码片段,演示如何将Excel数据导入到DataGridView
:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
namespace DataTableWindowsForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string ImportFilePath=string.Empty;
openFileDialog1.Filter = "Excel (*.xlsx)
*.xlsx";
DialogResult Result= openFileDialog1.ShowDialog();
if (Result == DialogResult.OK)
{
ImportFilePath = openFileDialog1.FileName;
}
if(ImportFilePath!=string.Empty)
{
var exceldoc=IronXL.WorkBook.LoadExcel(ImportFilePath);
var Edataset = exceldoc.ToDataSet().Tables [0];
for (int i = 0; i < Edataset.Columns.Count; i++)
{
Edataset.Columns [i].ColumnName = Edataset.Rows [0].ItemArray [i].ToString();
//dataGridView1.Rows [i].HeaderCell.Value = Edataset.Rows [0].ItemArray [i];
}
dataGridView1.DataSource = Edataset;
dataGridView1.Rows.RemoveAt(0);
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
namespace DataTableWindowsForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string ImportFilePath=string.Empty;
openFileDialog1.Filter = "Excel (*.xlsx)
*.xlsx";
DialogResult Result= openFileDialog1.ShowDialog();
if (Result == DialogResult.OK)
{
ImportFilePath = openFileDialog1.FileName;
}
if(ImportFilePath!=string.Empty)
{
var exceldoc=IronXL.WorkBook.LoadExcel(ImportFilePath);
var Edataset = exceldoc.ToDataSet().Tables [0];
for (int i = 0; i < Edataset.Columns.Count; i++)
{
Edataset.Columns [i].ColumnName = Edataset.Rows [0].ItemArray [i].ToString();
//dataGridView1.Rows [i].HeaderCell.Value = Edataset.Rows [0].ItemArray [i];
}
dataGridView1.DataSource = Edataset;
dataGridView1.Rows.RemoveAt(0);
}
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports System.Windows.Forms
Imports System.Windows.Forms.VisualStyles.VisualStyleElement.Window
Namespace DataTableWindowsForm
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim ImportFilePath As String=String.Empty
openFileDialog1.Filter = "Excel (*.xlsx) *.xlsx"
Dim Result As DialogResult= openFileDialog1.ShowDialog()
If Result = System.Windows.Forms.DialogResult.OK Then
ImportFilePath = openFileDialog1.FileName
End If
If ImportFilePath<>String.Empty Then
Dim exceldoc=IronXL.WorkBook.LoadExcel(ImportFilePath)
Dim Edataset = exceldoc.ToDataSet().Tables (0)
For i As Integer = 0 To Edataset.Columns.Count - 1
Edataset.Columns (i).ColumnName = Edataset.Rows (0).ItemArray (i).ToString()
'dataGridView1.Rows [i].HeaderCell.Value = Edataset.Rows [0].ItemArray [i];
Next i
dataGridView1.DataSource = Edataset
dataGridView1.Rows.RemoveAt(0)
End If
End Sub
End Class
End Namespace
上述代码从 Excel 中导入数据。 为了提供更多上下文,让我们假设我们正在设计一个带有DataGridView
控件和按钮的Windows窗体应用程序。 该按钮将打开一个对话框,从特定位置浏览 Excel 文件。 添加了自定义代码,以过滤并只显示数量有限的具有特定扩展名的文件。
打开对话框以选择 Excel 文件
然后,LoadExcel
方法用于从 Excel 文件加载数据。此方法允许从各种来源加载数据,例如文件名、字节或流。 如果 Excel 文件受密码保护,我们还可以将密码作为参数传递。
一旦 Excel 详细信息加载到 IronXL 对象中,就使用 ToDataSet
方法将 Excel 表数据转换为数据集。 Excel 文件中的每一张表都将转换成数据集中的一个单独表格。
然后,将所需的表从数据集中加载到DataGridView
。 为此,DataGridView
的DataSource
属性被设置为从IronXL新创建的DataTable
对象。 此步骤允许从 Excel 文件填充数据到DataGridView
。
显示 Excel 文件中的数据
此外,Excel 标题名称也分配给DataGridView
标题。 此外,我们从包含 Excel 列作为行数据的DataTable
中移除了所有额外的信息列。 这确保只有相关的数据会显示在DataGridView
中。
有关使用IronXL的更多教程,请点击此操作指南。
IronXL.Excel 是一款不依赖外部库的 Excel 实用程序,非常受欢迎。 这是一个独立的解决方案,无需安装 Microsoft Excel。 它与各种平台兼容。
使用 IronXL.Excel,您可以通过编程完成与 Microsoft Excel 文档相关的各种操作。 您可以执行诸如排序字符串或数字、修剪和添加数据、查找和替换值、合并和取消合并单元格、保存文件等任务。 它还允许您验证电子表格数据并定义单元格数据类型。 此外,IronXL 支持读取和写入 CSV 文件。
IronXL 可购买,价格为$749。 客户还可以选择支付会员年费,以获得更新和产品支持。 IronXL 提供不受限制的再发布权,但需额外收费。 要获取更详细的定价信息,您可以访问许可页面。