using Npgsql;
using OfficeOpenXml; // Nuget EPPlus
using System.IO;
EPPlus имеет одношаговый метод экспорта таблицы данных в электронную таблицу, поэтому, если вы воспользуетесь этим, вы сможете циклически выполнять запросы и экспортировать каждый из них на уникальный лист.
Нечто подобное (непроверенное, но должно быть 99%) должно сработать:
FileInfo fi = new FileInfo("foo.xlsx");
ExcelPackage excel = new ExcelPackage(fi);
int sheet = 1;
foreach (string sql in sqlQueries)
{
DataTable dt = new DataTable();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
da.Fill(dt);
ExcelWorksheet ws = excel.Workbook.Worksheets.Add(string.Format("Sheet{0}", sheet++));
ws.Cells["A1"].LoadFromDataTable(dt, true);
}
excel.Save();
Конечно, я бы порекомендовал некоторые уточнения для работы с типами данных, форматированием и тому подобным, но этобазовая конструкция.
Кроме того, конечно, используйте IDisposable using
свободно.