Advertisement
Guest User

Untitled

a guest
May 6th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.21 KB | None | 0 0
  1. public void ExportarExcel(DataTable dt, string fileName)
  2.         {
  3.             Response.ClearContent();
  4.             Response.ContentEncoding = System.Text.Encoding.Default;
  5.             Response.AddHeader("content-disposition", "attachment; filename=" + fileName + ".csv");
  6.             Response.ContentType = "text/csv";
  7.            
  8.             string tab = "";
  9.             int indice = 0;
  10.             foreach (DataColumn dc in dt.Columns)
  11.             {
  12.                 if (indice > 0)
  13.                 {
  14.                     Response.Write(tab + dc.ColumnName);
  15.                     tab = ";";
  16.                 }
  17.                 indice++;
  18.             }
  19.             Response.Write("\n");
  20.  
  21.             int i;
  22.             foreach (DataRow dr in dt.Rows)
  23.             {
  24.                 tab = "";
  25.                 for (i = 0; i < dt.Columns.Count; i++)
  26.                 {
  27.                     if (i > 0)
  28.                     {
  29.                         Response.Write(tab + dr[i].ToString());
  30.                         tab = ";";
  31.                     }
  32.                 }
  33.                 Response.Write("\n");
  34.             }
  35.             Response.End();
  36.         }
  37.  
  38.         public static DataTable ToDataTable<T>(List<T> data)
  39.         {
  40.             PropertyDescriptorCollection props =
  41.                 TypeDescriptor.GetProperties(typeof(T));
  42.             DataTable table = new DataTable();
  43.             for (int i = 0; i < props.Count; i++)
  44.             {
  45.                 PropertyDescriptor prop = props[i];
  46.                 table.Columns.Add(prop.Name, prop.PropertyType);
  47.             }
  48.             object[] values = new object[props.Count];
  49.             foreach (T item in data)
  50.             {
  51.                 for (int i = 0; i < values.Length; i++)
  52.                 {
  53.                     values[i] = props[i].GetValue(item);
  54.                 }
  55.                 table.Rows.Add(values);
  56.             }
  57.             return table;
  58.         }
  59.  
  60.        
  61.  
  62.         [HttpPost]
  63.         [Authorize(Roles = "Admin")]
  64.         [MultipleButton(Name = "action", Argument = "Exportar")]
  65.         public void Exportar()
  66.         {
  67.             var dados = db.RF_DiasUteis.ToList();
  68.             var dt = ToDataTable(dados);
  69.             string fileName = "DiasUteis";
  70.             ExportarExcel(dt, fileName);
  71.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement