C#でのExcel出力が簡単にできるDLLの提供サービスを行っています。
詳細はこちらをご確認ください。
このページでは、その使い方を紹介しています。
//Excel起動 using (var excelWrapper = new JSKExcelWrapper.JSKExcelWrapper()) { //テンプレート(ひな形)ファイルパス取得 var templatePath = Path.Combine(Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath), @"テンプレート\帳票テンプレート.xlsx"); //◆Excelファイル開く excelWrapper.OpenWorkbook(templatePath); //◆シート取得 Worksheet worksheet = excelWrapper.GetWorksheet("template"); //帳票形式で表示させるためのダミーデータ var dummyData = new List<string[]>() { new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"}, new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"}, new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"}, new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"}, new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"}, new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"}, new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"}, new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"}, new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"}, new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"}, new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"}, new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"}, new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"}, new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"}, new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"}, new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"}, new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"}, new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"}, new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"}, new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"}, new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"}, new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"}, new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"}, new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"}, new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"}, new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"}, new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"}, new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"}, new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"}, new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"}, new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"}, new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"}, new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"}, new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"}, new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"}, new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"}, }; //◆テンプレートファイルの各セルに設定されたセル名から、転記すするセル番地を取得する var indexCode1 = excelWrapper.GetExcelIndexData(worksheet, "コード"); var indexName1 = excelWrapper.GetExcelIndexData(worksheet, "名称"); var indexCode2 = excelWrapper.GetExcelIndexData(worksheet, "コード2"); var indexName2 = excelWrapper.GetExcelIndexData(worksheet, "名称2"); var indexMemo = excelWrapper.GetExcelIndexData(worksheet, "メモ"); //◆データ数分、明細行を行コピーする(罫線や書式もコピーされる) excelWrapper.CopyRow(worksheet, indexCode1.rowIndex/*コピー行の行番号(開始)*/, indexCode1.rowIndex/*コピー行の行番号(終了)*/, indexCode1.rowIndex + 1/*貼り付ける位置の行番号(開始) 最初の1行はすでに存在しているので、次の行からコピーする*/, indexCode1.rowIndex + dummyData.Count - 1/*貼り付ける位置の行番号(終了) 最初の1行はすでに存在しているので、-1する*/); //データの行数分回す foreach (var data in dummyData) { //◆転記 excelWrapper.SetCellValue(worksheet, indexCode1, data[0]); excelWrapper.SetCellValue(worksheet, indexName1, data[1]); excelWrapper.SetCellValue(worksheet, indexCode2, data[2]); excelWrapper.SetCellValue(worksheet, indexName2, data[3]); excelWrapper.SetCellValue(worksheet, indexMemo, data[4]); //◆記載が終わったので、次の行へインデックスをずらす indexCode1.NextRow(); indexName1.NextRow(); indexCode2.NextRow(); indexName2.NextRow(); indexMemo.NextRow(); } //出力先パス(このEXEと同じフォルダに出力) var fileBase = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + @"\サンプル出力⑤_" + DateTime.Now.ToString("yyyyMMddHHmmss"); //◆ファイル出力 excelWrapper.SaveExcel(fileBase + ".xlsx"); //Excelファイル出力 excelWrapper.SavePDF(fileBase + ".pdf"); //PDFファイル出力 //◆プレビュー表示 excelWrapper.Preview(); }