我需要知道如何将我在项目视图中的下表导出到 Excel 文档。
我要导出到excel的表如下:
<table class="exampletb table table-bordered table-hover display">
<thead>
<tr>
<th>Colaborador</th>
<th>Lider</th>
<th>Eje</th>
</tr>
</thead>
<tbody>
@foreach (var item in ViewBag.colaboradores)
{
var namelider = item.lider;
var codigo_col = item.codigo;
var lider = (from p in ((List<SI_OldMutual.Models.Collaborators>)ViewBag.email_lider).Where(n => n.nombres == namelider)
select p.email).ToList();
if (lider.Count == 0)
{
ViewBag.test = "No existe";
}
else
{
ViewBag.test = lider[0];
}
<tr>
<td>@item.nombres</td>
<td>@item.lider</td>
<td>@item.eje_funcional</td>
@foreach (var peso in ((List<SI_OldMutual.Models.Objectives>)ViewBag.pesos).Where(n => n.Lider == ViewBag.test))
{
<td>@peso.Peso_Objetivo</td>
}
@foreach (var calificacion in ((List<SI_OldMutual.Models.CalificarColaborador>)ViewBag.calificaciones).Where(n => n.codigo_colaborador == codigo_col))
{
<td>@calificacion.calificacion</td>
}
</tr>
}
</tbody>
</table>
他们告诉我我可以从控制器中做到这一点,但我不知道该怎么做,我是 Asp.Net Mvc5 的新手。我的想法是让它以与我在视图中使用的相同逻辑导出该表。
我的控制器是这样的:
public ActionResult Index()
{
ViewBag.colaboradores = (from p in db.Collaborators
where p.grupo_lider == "NO"
select p).ToList();
ViewBag.pesos = (from p in db.Objectives
select p).ToList();
ViewBag.calificaciones = (from p in db.CalificarColaboradors
select p).ToList();
ViewBag.email_lider = (from p in db.Collaborators where p.grupo_lider == "SI"
select p).ToList();
return View();
}
应该澄清的是,表格是按以下方式在我的视图中绘制的,因为权重和资格的结果可能因人而异,并且并不总是相同的数量,所以我留下了一张图片以便更好地理解:
这就是为什么我需要能够导出这个表,就像它在视图中显示给我一样,或者至少使用相同的逻辑。
如有疑问,我namespace
是SI_OldMutual
此答案基于先前对类似问题的回答:
您可以通过生成 Microsoft Excel 支持的 CSV 来实现。comma(
,
) 代表一列(在某些情况下,分号 (;
) 代表一列,但我不能确切地说在什么情况下会发生这种行为),而 line break(\n
) 代表一个新行。如果我们要生成下表:
要将其保存为 CSV,它将是:
这是结果:
我对您的代码进行了小修改,以使其从
ActionResult
. 您可能需要进行一些修改,但您已经有了如何生成它的想法:更新:
添加了对 UTF8 编码的支持以显示重音符号。
我遇到了完全相同的问题,我向您展示了我是如何解决的。你必须使用一个我在最后留给你的 Javascript 库。
1-创建一个按钮并为其分配一个功能,比如说“onclick='GenerarExcel()'”
2-然后在生成 Excel 函数中编写以下内容:
准备好了!!
在这里我给你留下可下载的演示
http://www.jqueryscript.net/download/Export-Html-Table-To-Excel-Spreadsheet-using-jQuery-table2excel.zip
您需要做的是从位于src文件夹中的jquery.table2excel.js文件中包含在页面标题中
记得把身份证放在你的桌子上!!
希望对你有帮助