unote 書けば書くほどに

C#で以下を実現するコード

1.SQL1→SQL2→SQL3を実行
2.リスト1,リスト2,リスト3のシートにそれぞれ、SQL1~3の実行結果記載
3.最後に結果.xlsxとして保存


using System;
using System.Data;
using System.Data.SqlClient;
using OfficeOpenXml;

class Program
{
static void Main()
{
// SQL接続文字列を設定
string connectionString = "YourConnectionStringHere";

// SQLクエリを設定
string sqlQuery1 = "YourSQLQuery1Here";
string sqlQuery2 = "YourSQLQuery2Here";
string sqlQuery3 = "YourSQLQuery3Here";

// Excelパッケージを作成
using (var package = new ExcelPackage())
{
// ワークブックを作成
var workbook = package.Workbook;

// SQL接続を確立
using (var connection = new SqlConnection(connectionString))
{
connection.Open();

// SQL1を実行
using (var command1 = new SqlCommand(sqlQuery1, connection))
{
var dataTable1 = new DataTable();
using (var reader1 = command1.ExecuteReader())
{
dataTable1.Load(reader1);
}
var worksheet1 = workbook.Worksheets.Add("リスト1");
worksheet1.Cells.LoadFromDataTable(dataTable1, true);
}

// SQL2を実行
using (var command2 = new SqlCommand(sqlQuery2, connection))
{
var dataTable2 = new DataTable();
using (var reader2 = command2.ExecuteReader())
{
dataTable2.Load(reader2);
}
var worksheet2 = workbook.Worksheets.Add("リスト2");
worksheet2.Cells.LoadFromDataTable(dataTable2, true);
}

// SQL3を実行
using (var command3 = new SqlCommand(sqlQuery3, connection))
{
var dataTable3 = new DataTable();
using (var reader3 = command3.ExecuteReader())
{
dataTable3.Load(reader3);
}
var worksheet3 = workbook.Worksheets.Add("リスト3");
worksheet3.Cells.LoadFromDataTable(dataTable3, true);
}
}

// Excelファイルを保存
var file = new System.IO.FileInfo("結果.xlsx");
package.SaveAs(file);
}
}
}