C# ASP.NET - Производить файл excel объекта смоделировало

Привет друг у меня есть функция, которую получает 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; }
}
0
задан 09.08.2019, 23:59
1 ответ

Очень грязный способ это делать состоит производя один 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

https://riptutorial.com/epplus

0
ответ дан 01.12.2019, 22:18
  • 1
    habrá способ má s отложи? нет немного así как перемещение чистой модели и бума!!!! excel sheet? – E.Rawrdríguez.Ophanim 10.08.2019, 01:02
  • 2
    hehehe не, который я узнал, но если ты находишь ее, так как имей ее :D Возможно, что есть какой-то книжный магазин где-то здесь, который я не знаю – Guasy 10.08.2019, 01:04
  • 3
    услышь только preguntota, этот буфер có mo я это сохраняю в папке?? – E.Rawrdríguez.Ophanim 14.08.2019, 17:22