gpt4 book ai didi

asp.net - 在 ASP.NET Core 中生成报告的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-01 22:24:47 25 4
gpt4 key购买 nike

任何人都可以告诉我如何在 ASP.NET Core 程序中创建报告。我想将报告导出为 Excel、PDF 和 Word。在 ASP.NET Core 中生成报告的最佳方法是什么?我正在寻求专家的建议

最佳答案

我正在Asp.Net Core 2.1中做一个项目。我使用 Rotativa.AspNetCore 来实现报告功能。它是免费的,您可以从 NUGET 获取,只需安装即可。

它将 View 转换为 pdf。您只需传递模型即可查看和创建 html 表或您想要的内容以及 css。该库将您的 View 转换为 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;
}

这是该 View 的 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>

如果您想将该 View 导出到 Excel,那么您只需在返回 View 之前添加标题即可。这是一个样本。

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

希望这对您有帮助。

关于asp.net - 在 ASP.NET Core 中生成报告的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55842325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com