Я использую C # и Visual Studio 2010. Я использую веб-приложение ASP.NET.Я пытаюсь передать данные из Oracle (данные доступны в виде данных) на несколько листов в одном Excel.Пользователь должен получить подсказку для сохранения файла.Я попробовал следующий способ, но это влияет на производительность.Есть ли другой способ, который может быть достигнут.Я не могу использовать сторонний инструмент.В Excel нет макросов, и это простая передача данных в Excel.Не требуется форматирование в Excel.Данные огромны.
Excel.Application oXL = new Excel.Application();
Excel.Workbook oWB = oXL.Workbooks.Add(missing);
Excel.Worksheet oSheet = oWB.ActiveSheet as Excel.Worksheet;
using (OracleConnection con = new OracleConnection(oradb))
{
con.Open();
test2(oSheet, "select * from table1", "Names", con);
Excel.Worksheet oSheet2 = oWB.Sheets.Add(missing, missing, 1, missing) as Excel.Worksheet;
test2(oSheet2, "select * from table2", "Address", con);
Excel.Worksheet oSheet3 = oWB.Sheets.Add(missing, missing, 2, missing) as Excel.Worksheet;
test2(oSheet3, "select * from table3", "Phones", con);
}
}
public static void test2(Excel.Worksheet oSheet, string sql, string name, OracleConnection con)
{
OracleDataAdapter da = new OracleDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt == null || dt.Columns.Count == 0)
{
}
else
{
oSheet.Name = name;
for (var i = 0; i < dt.Columns.Count; i++)
{
oSheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
}
for (var i = 0; i < dt.Rows.Count; i++)
{
for (var j = 0; j < dt.Columns.Count; j++)
{
oSheet.Cells[i + 2, j + 1] = dt.Rows[i][j];
}
}
}
}
}
Как передать данные на несколько листов в одном Excel и предложить пользователю сохранить файл?