繁体   English   中英

jQuery将表导出到csv隐藏表单元格

[英]Jquery exporting table to csv hidden table cells

我需要能够将HTML表导出为CSV。 我在某处找到了一个片段; 它可以工作,但不完全是我想要的。

在我的表中(摆弄),我有隐藏的字段,我只是使用快速的n脏内联样式和内联onclicks在您看到的内容之间进行交换。

我要导出的是它选择当前显示的表。 因此只有td所在的地方style="display:table-cell" 我知道如何在普通JS中执行此操作。

    document.querySelectorAll('td[style="display:table-cell"])');

但是如何使用exportTableToCSV函数中现在拥有的代码来执行此操作?

(很抱歉,小提琴中的文字是荷兰语,因为它是实时版本的直接副本)。 小提琴: http//jsfiddle.net/5hfcjkdh/

在您的handleRow方法中,您可以使用jQuery的:visible选择器过滤掉隐藏的表格单元格。 下面是一个例子

function grabRow(i, row) {

    var $row = $(row);
    //for some reason $cols = $row.find('td') || $row.find('th') won't work...
    //Added :visisble to ignore hidden ones
    var $cols = $row.find('td:visible'); 
    if (!$cols.length) $cols = $row.find('th:visible');

    return $cols.map(grabCol)
                            .get().join(tmpColDelim);
}

这是我解决的方法。 决定放弃纯粹的javascript解决方案,以减轻客户端的处理压力,而转而处理服务器端。

因为我已经使用存储过程从数据库中获取了数据,所以我使用它只是再次获取数据集并将其转换为ViewExportModel,因此我有一个TotalViewExport并根据一个Selected变量对它进行了一些修整(大部分重复使用),填充不同的模型。

添加到现有的show函数中,以更新Selected变量以跟踪当前选定的视图。

当用户单击Export table to excel时,它将调用当前页面IE的控制器。 AlarmReport(所以AlarmReportController)和我创建了动作ExportReports(int?SelectedView);

另外,我将CsvExport添加为经理。 这需要数据结果(所以C#模型/ iqueryables /列表/等等)。 并将它们放入Csv集中。 使用返回类型BinaryContent可以使用此数据导出.csv文件。

ExportReports操作使用selectedview参数调用存储过程。 结果被输入到正确的模型中。 该模型作为行被泵送到CsvExport模型中。

文件名是基于选定的视图+选定的对象+当前日期(yyyy-MM-dd)创建的。 因此例如“ Total_Dolfinarium_2016-05-13”。 让我们

最后,该操作使用BinaryContent Returntype和来自CsvExport的ExportToBytes返回.csv文件作为下载文件

此操作的导出部分按如下方式编程(缩短以省去一些检查,如选中多个对象等)(数据和对象名称已预先收集):

public ActionResult ExportCsv(CsvExport Data, string ObjectName, string Type){
   var FileName = Type + "_" + ObjectName + "_" + DateTime.Now.ToString("yyyy/MM/dd");
    return BinaryContent("text/csv", FileName + ".csv", Data.ExportToBytes());

} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM