0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#でExcelデータをDataTableに読み込む方法

Posted at

Excelはデータ整理やレポート作成に便利ですが、プログラムの中でデータを操作したい場合には、DataTableに読み込んで扱うのが効率的です。この記事では、Free Spire.XLS for .NET を使って、Excelワークシートの内容をDataTableに取り込む方法を紹介します。

ExcelをDataTableに変換する基本手順

Spire.XLSには ExportDataTable メソッドが用意されており、これを使うと簡単にExcelの表をDataTableへ変換できます。以下のコードは、ワークシート全体をDataTableに読み込む例です。

using Spire.Xls;
using System.Data;

namespace ExcelToDataTableDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Excelファイルをロード
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("Sample.xlsx");

            // 1つ目のワークシートを取得
            Worksheet sheet = workbook.Worksheets[0];

            // ワークシートをDataTableに変換
            DataTable dataTable = sheet.ExportDataTable();

            // DataTableを利用してデータ処理が可能
            foreach (DataRow row in dataTable.Rows)
            {
                Console.WriteLine(row[0].ToString());
            }
        }
    }
}

この方法を使えば、Excelの行と列がそのままDataTableに格納され、コード内で自由に処理できます。

サンプルExcelファイル:

2025-09-05_174712.png

DataTableへのインポート結果:

2025-09-05_174259.png

範囲を指定してDataTableに変換する

実際の業務では、ワークシート全体ではなく一部の範囲だけを扱いたいケースも多いです。
ExportDataTable(CellRange range, bool columnNames) を利用すると、任意の範囲を指定できます。

// A1:D10の範囲をDataTableに変換(1行目を列名として利用)
CellRange range = sheet.Range["A1:D10"];
DataTable dataTable = sheet.ExportDataTable(range, true);

これにより、必要なデータだけを効率的に取り出せます。

数式セルの取り扱いに注意

Excelには数式セルが含まれている場合があります。ExportDataTable を実行すると、数式はそのまま文字列として出力 されます。

例えば、セルに =SUM(A1:A3) が入力されている場合、DataTableには =SUM(A1:A3) という文字列が入ります。

もし数値結果を取得したい場合は、事前に数式セルを計算結果の値に置き換える必要 があります。

// 数式セルを値に変換してからDataTableにエクスポート
sheet.CalculateAllValue();
sheet.Range["A1:D10"].Value = sheet.Range["A1:D10"].FormulaValue.ToString();
DataTable dataTable = sheet.ExportDataTable(sheet.Range["A1:D10"], true);

こうしておけば、DataTableには計算済みの数値データが格納されます。

まとめ

  • ExportDataTable を使えばExcelの内容を簡単にDataTableに取り込める
  • 範囲を指定して部分的に取り込むことも可能
  • 数式セルはデフォルトでは数式そのものが出力されるため、数値を扱いたい場合は事前に計算結果へ変換しておく必要がある

これらを押さえておくことで、ExcelとC#の連携をスムーズに行えます。

Excelファイル操作に関するその他のチュートリアルについては、Spire.XLS for .NET公式チュートリアルをご参照ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?