6.ReoGrid (表計算ライブラリ)

表計算ライブラリ(ReoGrid)について説明していきます。

アグリモの製品では、日報検索データベースのExcelファイル読み込み機能として使用しています。
C#のグリッドコントロールよりも動作が速く、スクロールもちらつきが少なく、とても良いです。

「こんだけ機能盛りだくさんで無料?」というくらいの製品です。技術サポートについては有料のようです。

 

1.新規にソリューションを作成します。

2.パッケージマネージャーコンソールで、「Install-Package unvell.ReoGrid.dll」と入力してEnterキーを押下します。

3.プロジェクトの参照にDLLが追加されます。

4.ツールボックスに「ReoGridControl」が追加されているので、フォームにドラッグして貼り付けて使用します。

 

サンプルソース

//Excelファイル名
string ExcelFileName = file_name;

//Excelファイルのロード
reoGridControl1.Load(ExcelFileName);

//背景色=白、ヘッダ非表示、読み取りモード、シートサイズをデータ数に合わせる
reoGridControl1.BackColor = Color.White;
reoGridControl1.SetSettings(WorkbookSettings.View_ShowSheetTabControl, false);
var worksheet = reoGridControl1.Worksheets[0];
worksheet.SetSettings(WorksheetSettings.View_ShowHeaders, false);
worksheet.SetSettings(WorksheetSettings.Edit_Readonly, true);
worksheet.Resize(worksheet.MaxContentRow, worksheet.MaxContentCol + 1);

if (worksheet.MaxContentRow == 0)
{
    MessageBox.Show(this, "このファイルにはデータが存在しません。", "確認", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    return;
}


//入力ファイルチェック
if (worksheet.MaxContentCol == 33)          //CSV1.XLSX
{
    if((string)worksheet.Cells["A3"].Data != "NO" ||
        (string)worksheet.Cells["B3"].Data != "図面画像概要" ||
        (string)worksheet.Cells["C3"].Data != "図面PDF" ||
        (string)worksheet.Cells["D3"].Data != "概要書PDF" ||
        (string)worksheet.Cells["E3"].Data != "物件画像" ||
        (string)worksheet.Cells["F3"].Data != "物件番号"
        )
    {
        MessageBox.Show(this, "このファイルは物件画像・図面データのExcelファイルではないため、\r\n取り込むことができませんでした。", "確認", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        return;
    }
}
else if(worksheet.MaxContentCol == 65)      //CSV3.XLSX
{
    if ((string)worksheet.Cells["A3"].Data != "物件番号" ||
        (string)worksheet.Cells["B3"].Data != "データ種類" ||
        (string)worksheet.Cells["C3"].Data != "物件種別" ||
        (string)worksheet.Cells["D3"].Data != "物件種目" ||
        (string)worksheet.Cells["E3"].Data != "会員名" ||
        (string)worksheet.Cells["F3"].Data != "TEL" ||
        (string)worksheet.Cells["G3"].Data != "図面" ||
        (string)worksheet.Cells["H3"].Data != "図面PDF" ||
        (string)worksheet.Cells["I3"].Data != "物件画像"
        )
    {
        MessageBox.Show(this, "このファイルは物件画像・図面データのExcelファイルではないため、\r\n取り込むことができませんでした。", "確認", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        return;
    }
}