我有import { Injectable } from '@angular/core';
import * as FileSaver from 'file-saver';
import * as XLSX from 'xlsx';
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
const EXCEL_EXTENSION = '.xlsx';
@Injectable()
export class ExcelService {
constructor() { }
public exportAsExcelFile(json: any[], excelFileName: string): void {
const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);
const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });
this.saveAsExcelFile(excelBuffer, excelFileName);
}
private saveAsExcelFile(buffer: any, fileName: string): void {
const data: Blob = new Blob([buffer], {
type: EXCEL_TYPE
});
FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);
}
}
,其搜索仅在dataTable
的{{1}} {。}}。
问题:为什么搜索不在每一行都有效,它只代表第一行?为什么
为了更清晰,请参阅 jsFiddle :https://jsfiddle.net/pkxmnh2a/30/
段:
row

table

$(document).ready(function () {
var table = $('#examples').DataTable();
$('a.toggle-vis').on('click', function (e) {
e.preventDefault();
var column = table.column($(this).attr('data-column'));
column.visible(!column.visible());
});
$('#examples tfoot th').each(function () {
var title = $('#examples thead th').eq($(this).index()).text();
$(this).html('<input tyepe="text" placeholder="Search ' + title + '"/>');
});
table.columns().eq(0).each(function (colIdx) {
$('input', table.column(colIdx).footer()).on('keyup change', function () {
table.column(colIdx)
.search(this.value)
.draw();
});
});
});
&#13;
请提前帮助我!!
答案 0 :(得分:1)
我会说你应该在这里使用rowspan
和colspan
来表示你的表格(所以在网上使用两个<tr>
)这可以帮助你在你的表格中没有使用多个<tbody>
(实际上你 在表格中使用一个 <tbody></tbody>
以上),可以使用正确的表格如下:
<table>
<thead>
<tr>
<th>Header column A<th>
<th>Header column B<th>
</tr>
</thead>
<tbody>
<tr>
<td>Content column A Row 1<td>
<td>Content column B Row 1<td>
</tr>
</tbody>
<tfoot>
</tfoot>
</table>