C# Excelデータのインポートとエクスポートの簡単な方法

Excelのデータ処理機能は非常に強力であるため、日常業務では、データベースやDatatableなどのデータソースからExcelドキュメントにデータをインポートして、データ分析や計算をしたり、ExcelドキュメントのデータをデータベースまたはDatatableにエクスポートして、データを読み取りをしたりする場合は珍しくありません。

ネットワークでExcelデータのインポートとエクスポートに関する方法は多いです、例えばExcel Interopを通して実現できます。しかしこれは比較的に複雑な方法であり、Excelのインストールも要求されます。今回このブログでとある簡単な方法を紹介しようと思います、それは、完全無料のExcelコンポーネントFree Spire.XLSを使用することで、データをDatatableからExcelドキュメントへインポートするまたはExcelドキュメントのデータをDatatableへエクスポートすることができます。この方法はMicrosoft Excelを使用せずに済みます。

以下のコードを使用する前に、Free Spire.XLSをダウンロードして、相応なdllファイルをプロジェクトに参照してください。

DatatableからExcelドキュメントへインポート

DatatableからExcelドキュメントへインポートするには、Worksheet.InsertDataTableメソッドを使用します。

using Spire.Xls;

using System;

using System.Data;

using System.Drawing;

 

namespace Excel_import_export

{

    class Program

    {

        static void Main(string args)

        {

            DataTable tblDatas = new DataTable("Datas");

            tblDatas.Columns.Add("番号", Type.GetType("System.Int32"));

            tblDatas.Columns[0].AutoIncrement = true;

            tblDatas.Columns[0].AutoIncrementSeed = 1;

            tblDatas.Columns[0].AutoIncrementStep = 1;

 

            tblDatas.Columns.Add("名前", Type.GetType("System.String"));

            tblDatas.Columns.Add("年齢", Type.GetType("System.String"));

            tblDatas.Columns.Add("出身", Type.GetType("System.String"));

            tblDatas.Columns.Add("誕生日", Type.GetType("System.String"));

 

            tblDatas.Rows.Add(new object { null, "田中光一", "21", "鳥取","2000/7/15" });

            tblDatas.Rows.Add(new object { null, "木村直哉", "22", "福岡" ,"1999/2/13"});

            tblDatas.Rows.Add(new object { null, "樋口もも", "21","大分", "2000/7/15" });

            tblDatas.Rows.Add(new object { null, "佐藤尚子", "22", "熊本", "1999/2/13" });

            tblDatas.Rows.Add(new object { null, "川島百合子", "21", "鹿児島","2000/7/15" });

            tblDatas.Rows.Add(new object { null, "河野リナ", "22", "和歌山","1999/2/13" });

            tblDatas.Rows.Add(new object { null, "佐々木由紀", "21","京都", "2000/7/15" });

            tblDatas.Rows.Add(new object { null, "小林健", "22","奈良", "1999/2/13" });

            tblDatas.Rows.Add(new object { null, "富沢悠斗", "21", "愛知","2000/7/15" });

            tblDatas.Rows.Add(new object[] { null, "杉村健太郎", "22","兵庫", "1999/2/13" });

            //Excelドキュメントを作成する

            Workbook workbook = new Workbook();

            //1番目のワークシートを取得する

            Worksheet sheet = workbook.Worksheets[0];

            //datatableをワークシートへインポートして

            //ワークシートの1行目と1列目からデータを書き始める

            sheet.InsertDataTable(tblDatas, true, 1, 1);

            //適応列幅を設置する

            sheet.AllocatedRange.AutoFitColumns();

            //1行目の塗りつぶし色を設置する

            sheet.Rows[0].Style.Color = Color.Yellow;

            //ドキュメントを保存する

            workbook.SaveToFile("ImportToExcel.xlsx", ExcelVersion.Version2013);           

        }

    }

}

f:id:uha_noki:20210927160506p:plain

ExcelドキュメントからDatatableへエクスポート

Worksheet.ExportDataTableメソッドを使用してExcelドキュメントのデータをdatatableへエクスポートします。

using Spire.Xls;

using System;

using System.Data;

using System.Windows.Forms;

 

namespace ExportDataToDatagridview

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            // Workbookを生成してExcelドキュメントをロードする

            Workbook workbook = new Workbook();

            workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\Data.xlsx");

            // 1番目のシートを取得する

            Worksheet sheet = workbook.Worksheets[0];

            // rangeの範囲を設置する

            CellRange range = sheet.Range[sheet.FirstRow, sheet.FirstColumn, sheet.LastRow, sheet.LastColumn];

            //データを出力し、列名と数式値を同時に出力する

            DataTable dt = sheet.ExportDataTable(range, true, true);

            this.dataGridView1.DataSource = dt;

        }

    }

}

f:id:uha_noki:20210927160525p:plain

以上は、Excelデータのインポートとエクスポートの方法です、読んでいただいて、ありがとうございます。