Экспорт данных из таблицы в Excel с расширением "xlxs" или "csv" - PullRequest
0 голосов
/ 28 августа 2018

Я использую метод экспорта в моем контроллере для загрузки данных из таблицы в файл Excel, используя этот метод: вот моя таблица в индексном файле:

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Marks)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Grade)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Marks)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Grade)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.id }) |
            @Html.ActionLink("Details", "Details", new { id=item.id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.id })
        </td>
    </tr>
}

</table>

и в моем контроллере я написал этот метод, который срабатывает, когда вы нажимаете кнопку экспорта в индексном представлении:

 public ActionResult ExportData()
        {
            GridView gv = new GridView();
            gv.DataSource = db.Studentrecords.ToList();
            gv.DataBind();
            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment; filename=Marklist.xls");
            Response.ContentType = "application/ms-excel";
            Response.Charset = "";
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            gv.RenderControl(htw);
            Response.Output.Write(sw.ToString());
            Response.Flush();
            Response.End();

            return RedirectToAction("StudentDetails");
        }

все работает нормально, таблица легко загружается в файл Excel, но когда я открываю файл, в начале открытого файла выдается такая ошибка: Формат файла не соответствует. Файл может быть поврежден или небезопасен. Проблема возникает главным образом потому, что файл сохраняется в формате xls, где, как я хочу сохранить его в формате xlxs, как это возможно?

1 Ответ

0 голосов
/ 28 августа 2018

Чтобы экспортировать данные вида MVC в файл Excel, я использую библиотеку ClosedXml.

enter image description here

public ActionResult ExportToExcel()
    {
        var gv = new GridView();
        gv.DataSource = this.GetEmployeeList();
        gv.DataBind();

        Response.ClearContent();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment; filename=DemoExcel.xls");
        Response.ContentType = "application/ms-excel";

        Response.Charset = "";
        StringWriter objStringWriter = new StringWriter();
        HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter);

        gv.RenderControl(objHtmlTextWriter);

        Response.Output.Write(objStringWriter.ToString());
        Response.Flush();
        Response.End();

        return View("Index");

    }

Ссылка на полный текст статьи Ссылка на статью

...