Каков наилучший способ создания отчета в ядре asp.net? - PullRequest
0 голосов
/ 25 апреля 2019

Может кто-нибудь посоветовать мне, как создать отчет в основной программе asp.net. Я хотел бы экспортировать отчет в формате Excel, PDF и Word. Каков наилучший способ создания отчета в ядре asp.net? Я ищу совет от экспертизы

Ответы [ 3 ]

1 голос
/ 25 апреля 2019

Я делаю проект в Asp.Net Core 2.1. Я использовал Rotativa.AspNetCore для функции отчетности. Это бесплатно, вы можете получить от NUGET, просто установите и все.

Преобразует вид в pdf. Вы просто передаете свою модель для просмотра и создания HTML-таблицы или того, что вы хотите, и вместе с CSS. Эта библиотека преобразует ваш вид в PDF.

[HttpGet]
public async Task<IActionResult> Registration(int id)
{
    var reg = await _context.Registrations
        .Include(x => x.Property.Block)
        .Include(x => x.Property.Phase)
        .Include(x => x.Property.Street)
        .Include(x => x.Nomines)
        .FirstOrDefaultAsync(x => x.Id == id);
    var report = new ViewAsPdf("Registration")
    {
        PageMargins = { Left = 5, Bottom = 5, Right = 5, Top = 5 },
        Model = reg
    };
    return report;
}

Вот HTML-код для этого представления. Я удаляю длинные HTML-файлы, но вы можете проверить мой код.

<div class="row">
        <h1 class="report-heading text-center">Registration Form</h1>
        <div class="col-xs-9">
            <div class="form-group row">
                <div class="col-xs-6 no-padding">
                    <label class="col-xs-3 report-label">Date:-</label>
                    <label class="col-xs-9 report-field">@(Model.DateTime?.ToString("dd-MMM-yyyy"))</label>
                </div>
                <div class="col-xs-6 no-padding">
                    <label class="col-xs-4 report-label">Form #</label>
                    <label class="col-xs-8 report-field">@(Model.FormNo)</label>
                </div>
            </div>
            <div class="form-group row">
                <div class="col-xs-6 no-padding">
                    <label class="col-xs-5 report-label">Plot/House #</label>
                    <label class="col-xs-7 report-field">@(Model?.Property?.No)</label>
                </div>
                <div class="col-xs-6 no-padding">
                    <label class="col-xs-3 report-label">Street:-</label>
                    <label class="col-xs-9 report-field">@(Model?.Property?.Street?.Name)</label>
                </div>
            </div>
            <div class="form-group row">
                <div class="col-xs-6 no-padding">
                    <label class="col-xs-3 report-label">Marla:-</label>
                    <label class="col-xs-9 report-field">@(Model?.Property?.Marla)</label>
                </div>
                <div class="col-xs-6 no-padding">
                    <label class="col-xs-3 report-label">Sqft:- </label>
                    <label class="col-xs-9 report-field">@(Model?.Property?.Sqft)</label>
                </div>
            </div>
            <div class="form-group row">
                <div class="col-xs-6 no-padding">
                    <label class="col-xs-3 report-label">Block:-</label>
                    <label class="col-xs-9 report-field">@(Model?.Property?.Block?.Name)</label>
                </div>
                <div class="col-xs-6 no-padding">
                    <label class="col-xs-3 report-label">Phase:-</label>
                    <label class="col-xs-9 report-field">@(Model?.Property?.Phase?.Name)</label>
                </div>
            </div>
        </div>
</div>

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

public ActionResult Export()
{
    Response.AddHeader("Content-Type", "application/vnd.ms-excel");
    return View();
}

Надеюсь, это поможет вам.

0 голосов
/ 25 апреля 2019

Существует множество отличных сред отслеживания ошибок и отчетов для основных приложений .NET, например, Sentry , Raygun , которые могут быть добавлены с помощью nuget, а для небольших проектов они могут бытьиспользуется бесплатно.

Проверьте также Обработка ошибок и Обработка ошибок в ASP .NET Core , чтобы понять обработку ошибок в целом.

Так что вы можетенапишите свой собственный регистратор или вы используете (онлайн) среду для создания и мониторинга отчетов.Я уверен, что вы можете найти тот, который соответствует вашим потребностям.

0 голосов
/ 25 апреля 2019

Вы не упомянули формат отчета.Если это отчет в табличном формате, то вы можете рассмотреть html DataTables , который поставляется с опциями Pdf, word, excel и Print из коробки.

Проверьте здесь опцию многоуровневого заголовка, котораяобычно требуется для отчетов: https://datatables.net/examples/basic_init/complex_header.html

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