在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
本博客将对比如何在.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 软件包管理器用户界面中搜索并安装 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 文件
然后,加载 Excel该方法用于从 Excel 文件加载数据。该方法允许从文件名、字节或数据流等各种来源加载数据。 如果 Excel 文件受密码保护,我们还可以将密码作为参数传递。
将 Excel 详细信息加载到 IronXL.Excel 对象中后,IronXL.Excel 就会将这些信息翻译成中文。至数据集在翻译过程中,必须使用 "转换 "方法将 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 文档相关的各种操作。 您可以执行对字符串或数字排序、修剪和添加数据、查找和替换值等任务、合并和取消合并单元格此外,译文还必须包括.NET、Java、Python 或 Node.js 等术语,保存文件等。 还可以验证电子表格数据和定义单元格数据类型. 此外,IronXL 还支持阅读和编写 CSV 文件.
IronXL 的购买价格为 $749。 客户还可以选择支付会员年费,以获得更新和产品支持。 IronXL 提供不受限制的再发布权,但需额外收费。 要获取更详细的定价信息,请访问许可页面.