Привет друг у меня есть функция, которую получает json с особенной моделью, мне нужно, чтобы весь info, который я перемещаю из-за этого json, превращать ее в excel и сохранять это внутри папки на моем сервере, кого-то знал, как я могу делать это???
это моя модель и функция, где я это получаю, в конце концов только я хочу возвратить string, который говорил бы, excel произведенный или который возвращал бы ошибку в string
[HttpPost]
public string SaveCreditQuotation(SolicitudCreditoCalculadora creditQuo){
var response = "";
var message = creditQuo.fullmsn.ToString();
var mail_user = creditQuo.mail_user.ToString();
response = "yeah";
// response = "nos comunicaremos contigo vía el mail:" + mail_user + " , si surge algún desperfecto comunicate con nostros";
return response ;
}
Это мой класс
public class Payment
{
public string IndicePago { get; set; }
public string Fecha { get; set; }
public string Cantidad { get; set; }
}
public class SolicitudCreditoCalculadora
{
public string mail_user { get; set; }
public string fullmsn { get; set; }
public List<Payment> payments { get; set; }
}
Очень грязный способ это делать состоит производя один datatable
и потом в том, чтобы создавать один stringbuilder
таблицы, чтобы в конце концов создавать файл. Здесь пример:
StringBuilder sb = new StringBuilder();
//Se llama a la funcion que convierte el DT en un SB para convertirlo a excel
sb = DataTableToSb(dt);
//Se crea el nombre del archivo EJ: #OM84674_FRE-40_1.xls
string filename = "Nombre"+ id + ".xls";
HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + filename);
this.Response.ContentType = "application/vnd.ms-excel";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
return File(buffer, "application/vnd.ms-excel");
Функция, которую конвертирует datatable
public StringBuilder DataTableToSb(DataTable dt)
{
StringBuilder sb = new StringBuilder();
sb.Append("<table>");
//write column headings
sb.Append("<tr>");
foreach (System.Data.DataColumn dc in dt.Columns)
{
sb.Append("<td><b><font face=Arial size=2>" + dc.ColumnName + "</font></b></td>");
}
sb.Append("</tr>");
//write table data
foreach (System.Data.DataRow dr in dt.Rows)
{
sb.Append("<tr>");
foreach (System.Data.DataColumn dc in dt.Columns)
{
sb.Append("<td><font face=Arial size=" + "14px" + ">" + dr[dc].ToString() + "</font></td>");
}
sb.Append("</tr>");
}
sb.Append("</table>");
return sb;
}
И другая состоит в том, чтобы использовать бесплатный книжный магазин nuget названный Epplus