我正在使用C#和Visual Studio2010。我正在使用ASP.NET Web应用程序。 我正在尝试将来自Oracle的数据(数据表中的数据)传递到同一excel中的多个工作表。用户应提示保存文件。我尝试了以下方法,但它会影响性能。是否有任何其他方法可以实现。我不能使用第三方工具。 excel中没有宏,它是从datatable到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中的多个工作表并提示用户保存文件?