Как добавить кнопку экспорта в виде бритвы для экспорта данных в Excel - PullRequest
0 голосов
/ 28 марта 2020

Я реализую проект asp. net core 3.0. Я хочу, чтобы в моем представлении бритвы была кнопка экспорта, а затем, щелкнув по ней, лист Excel, содержащий загрузки информации о просмотре бритвы в указанном каталоге. Для создания метода экспорта я подумал, что было бы лучше использовать EEPLUS и, используя ссылку https://www.c-sharpcorner.com/article/export-data-to-excel-file-in-asp-net-using-epplus/, я попытался экспортировать данные моего вида бритвы в Excel. Но в этой ссылке сказано добавить строку ниже на страницу aspx, чтобы иметь кнопку экспорта, однако мне нужна кнопка для просмотра бритвы. Я ценю, если кто-нибудь может сказать мне, как изменить эту инструкцию, чтобы быть в формате бритвы.

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Вот рабочая демонстрация о том, как экспортировать данные с помощью asp. net core:

1. Загрузите пакет EPPLUS на Nuget: enter image description here

2.Razor View (Index.cs html):

<form>
    <input type="submit" asp-action="Export" value="Export" />
</form>

3.Controller:

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
    [HttpGet]
    public IActionResult Export()
    {
        var students = new[]
        {
            new {
                Id = "101", Name = "Vivek", Address = "Hyderabad"
            },
            new {
                Id = "102", Name = "Ranjeet", Address = "Hyderabad"
            },
            new {
                Id = "103", Name = "Sharath", Address = "Hyderabad"
            },
            new {
                Id = "104", Name = "Ganesh", Address = "Hyderabad"
            },
            new {
                Id = "105", Name = "Gajanan", Address = "Hyderabad"
            },
            new {
                Id = "106", Name = "Ashish", Address = "Hyderabad"
            }
        };

        var stream = new MemoryStream();

        using (var package = new ExcelPackage(stream))
        {
            var workSheet = package.Workbook.Worksheets.Add("Sheet1");
            workSheet.TabColor = System.Drawing.Color.Black;
            workSheet.DefaultRowHeight = 12;
            workSheet.Cells.LoadFromCollection(students, true);
            package.Save();
        }
        stream.Position = 0;
        string excelName = "studentsRecord.xlsx"; 
        return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", excelName);
    }
}

Если вы хотите показать тот же результат, добавьте новый столбец, который не находится в students, используйте следующий код:

[HttpGet]
public IActionResult Export()
{
    var students = ...;

    var stream = new MemoryStream();

    using (var package = new ExcelPackage(stream))
    {
        var workSheet = package.Workbook.Worksheets.Add("Sheet1");
        workSheet.TabColor = System.Drawing.Color.Black;
        workSheet.DefaultRowHeight = 12;

        //workSheet.Cells.LoadFromCollection(students, true);

        //Header of table  
        //  
        workSheet.Row(1).Height = 20;
        workSheet.Row(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
        workSheet.Row(1).Style.Font.Bold = true;
        workSheet.Cells[1, 1].Value = "S.No";
        workSheet.Cells[1, 2].Value = "Id";
        workSheet.Cells[1, 3].Value = "Name";
        workSheet.Cells[1, 4].Value = "Address";
        //Body of table  
        //  
        int recordIndex = 2;
        foreach (var student in students)
        {
            workSheet.Cells[recordIndex, 1].Value = (recordIndex - 1).ToString();
            workSheet.Cells[recordIndex, 2].Value = student.Id;
            workSheet.Cells[recordIndex, 3].Value = student.Name;
            workSheet.Cells[recordIndex, 4].Value = student.Address;
            recordIndex++;
        }
        workSheet.Column(1).AutoFit();
        workSheet.Column(2).AutoFit();
        workSheet.Column(3).AutoFit();
        workSheet.Column(4).AutoFit();
        package.Save();
    }
    stream.Position = 0;
    string excelName = "studentsRecord.xlsx"; 
    return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", excelName);
}

Результат: enter image description here

0 голосов
/ 28 марта 2020

Что именно вы хотите экспортировать в Excel из бритвы. Это полное представление, извлечение из представления, может быть, таблица в представлении?

В которой вы используете ASP. Net Core MVC: передать содержимое, которое вы хотите извлечь, в контроллер, который будет обрабатывать кнопку.

Вам нужно будет создать метод, который будет выполнять следующие действия:

  1. Создать файл для содержимого, которое вы хотите экспортировать
  2. Создание листа в файле
  3. Создание строк и столбцов и вставка переданного в него содержимого
  4. Разделение содержимого, переданного в качестве аргумента, на содержимое столбца для нескольких строк.
  5. Вставка разделите содержимое на созданный файл и сохраните его

Присоедините метод к контроллеру, обрабатывающему кнопку, и перенаправьте его в местоположение файла на вашем сервере в качестве действия возврата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...