透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
このブログでは、最も人気のあるライブラリの一つであるIronXLを使用して、.NET技術でMicrosoft Excelドキュメントをプログラム的に操作する方法について、CSV形式と標準Excel形式のそれぞれを比較し対照します。
C#でIronXLライブラリを使用することで、Microsoft Excelドキュメントを簡単にCSVファイルに読み取り、変換することができます。 IronXLは、Microsoft ExcelのインストールやMicrosoft Office Interop Excelに依存することなく、様々なスプレッドシート形式を読み取ることができるスタンドアロンの.NETソフトウェアライブラリです。
IronXLは、.NET Coreおよび.NET Frameworkの両方に対応する、C#向けの主要なExcelスプレッドシートライブラリの一つです。 それは、Webアプリケーション、Windowsフォームアプリケーション、コンソールアプリケーションを含むさまざまな.NET Frameworkをサポートしています。 IronXLを使用したExcelファイルの読み取りは迅速で簡単です。 XLSX、XLS、CSV、TSV、XLST、XLSM など、幅広い Excel ファイル形式をサポートしています。 データテーブルをインポート、編集、エクスポートし、データセットをエクスポートし、多くの他の操作を行うことができます。 異なる拡張子でファイルをエクスポートおよび保存することも可能です。
IronXLの直感的なC# APIを使用すると、.NET環境でExcelスプレッドシートファイルの読み取り、修正、作成を簡単に行うことができます。 .NET Core、.NET Framework、Xamarin、モバイル、Linux、macOS、およびAzureのための包括的なサポートを提供しています。
IronXLはMicrosoft Excelのように計算を実行でき、テキスト、整数、数式、日付、通貨、パーセンテージなど、いくつかの列データ形式をサポートします。
詳細については、IronXLのウェブサイトをご覧ください。
IronXLフレームワークを使用する前に、Visual Studioで.NETプロジェクトを作成する必要があります。 どのバージョンのVisual Studioも使用可能ですが、最も新しいバージョンの使用をお勧めします。 要件に応じて、さまざまなプロジェクトテンプレートやWindows Formsのようなアプリケーションを作成することができます。 このチュートリアルでは、作業を簡素化するためにWindows Formsアプリケーションを使用します。
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 データを 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 Forms アプリケーションを設計していると仮定しましょう。 そのボタンをクリックすると、特定の場所からExcelファイルを参照するダイアログが開きます。 カスタムコードを追加して、特定の拡張子を持つファイルのみをフィルタリングして表示します。
Excelファイルを選択するダイアログを開く
次に、LoadExcel
メソッドを使用してExcelファイルからデータを読み込みます。このメソッドは、ファイル名、バイト、ストリームなどさまざまなソースからデータを読み込むことができます。 エクセルファイルがパスワード保護されている場合、パラメーターとしてパスワードを渡すこともできます。
Excelの詳細がIronXLオブジェクトに読み込まれると、ToDataSet
メソッドを使用して、Excelシートのデータをデータセットに変換します。 Excelファイルの各シートは、データセット内の個別のテーブルに変換されます。
次に、必要なテーブルをデータセットからDataGridView
にロードします。 これを行うには、DataGridView
のDataSource
プロパティをIronXLから新しく作成されたDataTable
オブジェクトに設定します。 このステップでは、ExcelファイルからDataGridView
へのデータポピュレーションが可能になります。
Excelファイルからデータを表示する
さらに、Excel ヘッダー名も DataGridView
ヘッダーに割り当てられます。 さらに、Excel列を行データとして含むDataTable
から追加情報列を削除しました。 これにより、DataGridView
に関連するデータのみが表示されることが保証されます。
IronXLの使用に関するチュートリアルについては、このハウツーガイドをクリックしてください。
IronXLは、外部ライブラリに依存しない非常に人気のあるExcelユーティリティです。 それは独立したソリューションであり、Microsoft Excelのインストールを必要としません。 さまざまなプラットフォームに対応しています。
IronXLを使用すると、Microsoft Excelドキュメントに関連するさまざまな操作をプログラムで実行できます。 文字列や数値のソート、データのトリミングおよび追加、値の検索と置換、セルの結合と結合解除、ファイルの保存などのタスクを実行できます。 また、スプレッドシートのデータを検証し、セルのデータ型を定義することもできます。 さらに、IronXLはCSVファイルの読み取りと書き込みをサポートしています。
IronXLは$749で購入可能です。 お客様はまた、更新および製品サポートのために年会費を支払うオプションがあります。 追加料金を支払えば、IronXLは無制限の再配布権を提供します。 より詳細な料金情報を取得するには、ライセンスページをご覧ください。