| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <%@ WebHandler Language="C#" Class="exportExcel" %>
- using System;
- using System.Web;
- using System.Data;
- using System.Collections;
- using System.Data.OleDb;
- using Oracle.ManagedDataAccess.Client;
- using System.Reflection;
- using System.Text;
- using System.IO;
- using Curtain.DataAccess;
- using DK.XuWei.WebMes;
- public class exportExcel : IHttpHandler
- {
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- using (IDataAccess conn = DataAccess.Create())
- {
- OracleDataReader dr = (OracleDataReader)conn.ExecuteReader(@"
- SELECT
- *
- FROM
- TP_MST_USER
- WHERE
- VALUEFLAG = '1'
- AND USERID < @USERID@
- ",
- new CDAParameter("USERID", "10")
- );
- string excelFile = "/export/export.xls";
- int result = ExportToCsv(dr, HttpContext.Current.Server.MapPath(excelFile));
- if(result == 1)
- {
- context.Response.Write(new JsonResult(excelFile) { message = "数据导出成功!"}.ToJson());
- context.Response.Redirect(excelFile);
- }
- else
- context.Response.Write(new JsonResult(JsonStatus.error) { message = "数据导出失败!"}.ToJson());
- }
- }
- /// <summary>
- /// 导出到Csv文件
- /// </summary>
- /// <param name="dataReader">SqlDataReader</param>
- /// <param name="csvFile">csv文件</param>
- /// <returns></returns>
- public static int ExportToCsv(OracleDataReader dataReader, string csvFile)
- {
- try
- {
- string headerStr = "";
- StringBuilder dataStr = new StringBuilder("");
- //读标题列
- for (int i = 0; i < dataReader.FieldCount; i++)
- {
- if (i > 0) headerStr += ",";
- headerStr += "\"" + dataReader.GetName(i) + "\"";
- }
- headerStr += "\n";
- dataStr.Append(headerStr);
- //读数据列
- while (dataReader.Read())
- {
- for (int j = 0; j < dataReader.FieldCount; j++)
- {
- if (j > 0) dataStr.Append(",");
- dataStr.Append("\"" + dataReader[j].ToString().Replace("\"", "\\\"") + "\"");
- }
- dataStr.Append("\n");
- }
- //写文件
- StreamWriter sw = new StreamWriter(csvFile, false, Encoding.GetEncoding("utf-8"));
- sw.Write(dataStr.ToString());
- sw.Flush();
- sw.Close();
- return 1;
- }
- catch
- {
- return -1;
- }
- }
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
|