Oracle&C# 导出多Sheet Excel ,使用Oracle Package (不积跬步,无以至千里)

该博客展示了如何使用C#结合Oracle Package来导出包含多个Sheet的Excel文件。通过调用`GetExportData`方法获取数据,然后使用`Export_ExamData`将数据转换为Excel并保存到内存流中,最后通过`TranDataToClient`将文件发送到客户端进行下载。方法中涉及到Oracle参数设置及数据集转换。
摘要由CSDN通过智能技术生成





string dateFlag = DateTime.Now.ToString("yyyyMMddHHmmss");
DataSet dataSet = loader.GetExportData(ID);
MemoryStream memory = Export_ExamData(dataSet);
TranDataToClient("Infor_" + dateFlag + ".xls", memory.ToArray());




private System.IO.MemoryStream Export_ExamData(DataSet dt)
{
   System.IO.MemoryStream ms = new System.IO.MemoryStream();
   IO.DataSet2Excel(dt, ms);
   return ms;
}




/// <summary>
/// 导出Excel模板
/// </summary>
/// <param name="strfilename"></param>
/// <param name="templateValue"></param>
private void TranDataToClient(string strfilename, byte[] templateValue)
{
   string path = strfilename;
   int count = templateValue.Length;


   // 从缓冲区中清除当前输出内容
   Response.Clear();


   // 添加头信息,为"文件下载/另存为"对话框指定默认文件名
   Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(path));


   // 添加头信息,指定文件大小,让浏览器能够显示下载进度
   Response.AddHeader("Content-Length", count.ToString());


   // 指定返回的是一个不能被客户端读取的流,必须被下载
   Response.ContentType = "octet-stream";


   // 把文件流发送到客户端
   Response.OutputStream.Write(templateValue, 0, count);


   // 停止页面的执行
   Response.End();
}




public DataSet GetExportData(string ID)
{
OracleParameter[] parameters = new OracleParameter[18];


#region Parameters Define.
int i = 0;
parameters[i] = new OracleParameter("p_exammarrange_id", OracleType.NVarChar);
parameters[i].Value = ID;


i++;
parameters[i] = new OracleParameter("o_exammarrange", OracleType.Cursor);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值