C# EXCEL操作 値の入力

C#でEXCELへ値を入力する方法を紹介していきます。

2次元配列を利用することで、範囲に入力することも可能です。

他にもEXCEL操作関係の記事を記載していますので、参考にしてみてください。
C# EXCEL操作 新規ブック作成
C# EXCEL操作 罫線の引き方
C# EXCEL操作 背景色変更
C# EXCEL操作 フィルター設定

EXCEL値入力

まずは、基本的な値の入力方法を紹介していきます。

WorkSheet.Cells[行, 列].value = "任意の値";

このような書き方で、EXCELに値を入力することができます。

例を見てみましょう。

sheet.Cells[1, 1].value = "名前";
sheet.Cells[1, 2].value = "身長";
sheet.Cells[1, 3].value = "体重";
sheet.Cells[1, 4].value = "メモ";

結果

このように指定したセルに値を入力することができます。

EXCEL範囲入力

先ほどのように、指定したセルに対して、値を入力することができるのですが、大量のデータを入力すると動きがとても遅くなります。

そこで、セルにまとめて入力する方法があるので紹介していきます。

まとめて入力する際は、2次元配列を利用します。2次元配列がわからない方はこちらを参考にしてみてください。

object[,] arr_detail = new object[4, 4];
arr_detail[0, 0] = "田中";
arr_detail[0, 1] = "160";
arr_detail[0, 2] = "60";
arr_detail[0, 3] = "おはよう";

arr_detail[1, 0] = "鈴木";
arr_detail[1, 1] = "170";
arr_detail[1, 2] = "70";
arr_detail[1, 3] = "こんにちは";

arr_detail[2, 0] = "山本";
arr_detail[2, 1] = "180";
arr_detail[2, 2] = "80";
arr_detail[2, 3] = "こんばんは";

arr_detail[3, 0] = "松本";
arr_detail[3, 1] = "190";
arr_detail[3, 2] = "90";
arr_detail[3, 3] = "おはよう";

Excel.Range range;
range = sheet.Range[sheet.Cells[2, 1], sheet.Cells[5, 4]];
range.Value = arr_detail;

解説

1~20行目:2次元配列を作成
23行目:貼り付けを行う範囲を指定する。開始セル(2,1) 終了セル(5,4)
24行目:作成した2次元配列を指定した範囲に張り付けを行う。

結果

このように明細など、大量のデータを入力するときは、まとめて入力しましょう。

サンプルソース

ボタンを押下すると、EXCELを出力するサンプルを載せておきます。

using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace c_sharp
{
    public partial class frmExcel : Form
    {
        public frmExcel()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application excelApp = new Excel.Application();
            Excel.Workbooks excelBooks = excelApp.Workbooks;
            Excel.Workbook excelBook = excelBooks.Add();
            Excel.Worksheet sheet = excelApp.Worksheets["sheet1"];

            try
            {

                excelApp.Visible = false;
                
                //ヘッダー作成
                sheet.Cells[1, 1].value = "名前";
                sheet.Cells[1, 2].value = "身長";
                sheet.Cells[1, 3].value = "体重";
                sheet.Cells[1, 4].value = "メモ";

                object[,] arr_detail = new object[4, 4];
                arr_detail[0, 0] = "田中";
                arr_detail[0, 1] = "160";
                arr_detail[0, 2] = "60";
                arr_detail[0, 3] = "おはよう";

                arr_detail[1, 0] = "鈴木";
                arr_detail[1, 1] = "170";
                arr_detail[1, 2] = "70";
                arr_detail[1, 3] = "こんにちは";

                arr_detail[2, 0] = "山本";
                arr_detail[2, 1] = "180";
                arr_detail[2, 2] = "80";
                arr_detail[2, 3] = "こんばんは";

                arr_detail[3, 0] = "松本";
                arr_detail[3, 1] = "190";
                arr_detail[3, 2] = "90";
                arr_detail[3, 3] = "おはよう";

                Excel.Range range;
                range = sheet.Range[sheet.Cells[2, 1], sheet.Cells[5, 4]];
                range.Value = arr_detail;

                excelBook.SaveAs("D:\\NewExcelBook_csharp.xlsx");
            }
            catch
            {
                throw;
            }
            finally
            {
                excelApp.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(excelBook);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
            }

        }
    }
}

まとめ

1セルずつ値を入力する方法と、範囲でまとめて入力する方法を紹介しました。

どちらもよく使うので、参考にしてみてください。

 

C#の記事一覧

おすすめの記事