表計算ライブラリ(ReoGrid)について説明していきます。
アグリモの製品では、日報検索データベースのExcelファイル読み込み機能として使用しています。
C#のグリッドコントロールよりも動作が速く、スクロールもちらつきが少なく、とても良いです。
「こんだけ機能盛りだくさんで無料?」というくらいの製品です。技術サポートについては有料のようです。
1.新規にソリューションを作成します。
2.パッケージマネージャーコンソールで、「Install-Package unvell.ReoGrid.dll」と入力してEnterキーを押下します。
3.プロジェクトの参照にDLLが追加されます。
4.ツールボックスに「ReoGridControl」が追加されているので、フォームにドラッグして貼り付けて使用します。
サンプルソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
//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; } } |