Я использую плагин INFRAGISTICS для экспорта в Excel, я делаю настраиваемые данные экспорта, чтобы расположить данные в определенной ячейке или регионе. У меня есть работающий экспорт Excel, но как экспортировать мои данные, потому что в нем есть два или более данных. я не включил все свои коды, я включил необходимые, во-первых, когда щелкнул класс btnSearch, он отображает данные в таблице, которые можно датировать. и затем вы можете нажать Export btn, чтобы экспортировать данные в Excel. или есть другой способ?
// Мои данные, которые отображаются после отображения класса btnSearch.
<table id="IncomeLedgerTable" class="table table-striped table-bordered cell-border compact stripe" style="width:100%; margin-top: 20px;">
<thead>
<tr>
<td>PayPeriod</td>
<td>Basic(A)</td>
<td>OtherInCome</td>
<td>Detail</td>
<td>Contribution Base</td>
<td>Tax Base (D)</td>
<td>SS Contri (E)</td>
<td>Philhealth Contri (F)</td>
<td>Pag-Ibig Contri (G)</td>
<td>Net Tax Base (H)</td>
<td>Tax WithShield (I)</td>
</tr>
</thead>
</table>
Export
<script>
var table = $('#IncomeLedgerTable').DataTable({
"order": []
});
//
$('.btnSearch').click(function () {
$.ajax({
type: 'POST',
dataType: "json",
url: '@Url.Action("IncomeLedgerTable", "LastPay")',
data: {
'EmployeeID': $('#EmployeeID').val(),
'Year': $('#Year').val()
},
beforeSend: function () {
$.dialog({
icon: 'fa fa-spinner fa-spin',
title: 'Loading',
content: 'Please Wait...',
showConfirmButton: false,
draggable: false,
closeIcon: false
});
},
success: function (result) {
$(".jconfirm").fadeOut(1);
var resultData = JSON.parse(result.data);
console.log(resultData);
table.clear().draw();
if (resultData.length > 0) {
for (i = 0; i < resultData.length; i++) {
table.row.add([
'<span id="PayrollPeriodData">' + resultData[i].PayrollPeriod + '</span>',
'<span id="BasicPayData">' + formatNumber(resultData[i].BasicPay) + '</span>',
'<span id="OtherIncomeData">' + formatNumber(resultData[i].OtherIncome) + '</span>',
'<span id="DetailData">' + resultData[i].Detail + '</span>',
'<span id="GovBasisData">' + formatNumber(resultData[i].GovBasis) + '</span>',
'<span id="TaxBaseData">' + formatNumber(resultData[i]. TaxBase) + '</span>',
'<span id="SSSData">' + formatNumber(resultData[i].SSS) + '</span>',
'<span id="PHICData">' + formatNumber(resultData[i].PHIC) + '</span>',
'<span id="HDMFData">' + formatNumber(resultData[i].HDMF) + '</span>',
'<span id="NetTaxBaseData">' + formatNumber(resultData[i]. NetTaxBase) + '</span>',
'<span id="TaxWithHeld">' + formatNumber(resultData[i].TaxWithHeld) + '</span>',
]).draw(false);
}
}
else {
$.alert({
title: 'Message!',
content: 'No Data Found in Income Ledger!',
});
}
setTimeout(function () {
$('.totalSearch').click()
}, 1000);
},
});
});
// Экспорт при нажатии
$(document).on("click",".btnExport", function () {
var UserID = $('#UserID').val();
var Position = $('#Position').val();
var Department = $('#Department').val();
var Branch = $('#Branch').val();
var StartDate = $('#StartDate').val();
var PayrollType = $('#PayrollType').val();
var Rate = $('#Rate').val();
var LengthOfStay = $('#LengthOfStay').val();
var workbook = new $.ig.excel.Workbook($.ig.excel.WorkbookFormat.excel2007);
var sheet = workbook.worksheets().add('Sheet1');
sheet.columns(0).setWidth(96, $.ig.excel.WorksheetColumnWidthUnit.pixel);
sheet.columns(4).setWidth(80, $.ig.excel.WorksheetColumnWidthUnit.pixel);
sheet.columns(6).setWidth(96, $.ig.excel.WorksheetColumnWidthUnit.pixel);
// Add merged regions for regions A1:D2 and E1:G2
var mergedCellA1D2 = sheet.mergedCellsRegions().add(0, 0, 0, 10);
// Add two large headers in merged cells above the data
mergedCellA1D2.value('YEAR TO DATE COMPUTATION: 2019');
mergedCellA1D2.cellFormat().alignment($.ig.excel.HorizontalCellAlignment.center);
mergedCellA1D2.cellFormat().fill($.ig.excel.CellFill.createSolidFill('#C62828'));
mergedCellA1D2.cellFormat().font().colorInfo(new $.ig.excel.WorkbookColorInfo($.ig.excel.WorkbookThemeColorType.light1));
mergedCellA1D2.cellFormat().font().height(16 * 20);
// Format some rows and columns that should have similar formatting so we don't have to set it on individual cells.
sheet.rows(2).cellFormat().font().bold(true);
sheet.columns(4).cellFormat().formatString('$#,##0.00_);[Red]($#,##0.00)');
sheet.columns(6).cellFormat().formatString('$#,##0.00_);[Red]($#,##0.00)');
// Add a light color fill to all cells in the A3:G17 region to visually separate it from the rest of the sheet. We can iterate
// all cells in the regions by getting an enumerator for the region and enumerating each item.
// Populate the sheet with data
sheet.getCell('A3').value('Name:');
sheet.getCell('A4').value('Position / Dept:');
sheet.getCell('A5').value('Department:');
sheet.getCell('A6').value('Company Branch:');
sheet.getCell('A7').value('Hiring Date:');
sheet.getCell('A8').value('Separation Date:');
sheet.getCell('A9').value('Length of Stay:');
sheet.getCell('A10').value('Tax Code:');
sheet.getCell('A11').value('Payroll Type:');
sheet.getCell('A12').value('Monthly Rate:');
sheet.getCell('B3').value(UserID);
sheet.getCell('B4').value(Position);
sheet.getCell('B5').value(Department);
sheet.getCell('B6').value(Branch);
sheet.getCell('B7').value(StartDate);
sheet.getCell('B9').value(LengthOfStay);
sheet.getCell('B11').value(PayrollType);
sheet.getCell('B12').value(Rate);
var mergedCellA13D1 = sheet.mergedCellsRegions().add(12, 0, 12, 10);
// Add two large headers in merged cells above the data
mergedCellA13D1.value('Income Ledger:');
mergedCellA13D1.cellFormat().alignment($.ig.excel.HorizontalCellAlignment.center);
mergedCellA13D1.cellFormat().fill($.ig.excel.CellFill.createSolidFill('#C62828'));
mergedCellA13D1.cellFormat().font().colorInfo(new
$.ig.excel.WorkbookColorInfo($.ig.excel.WorkbookThemeColorType.light1));
mergedCellA13D1.cellFormat().font().height(16 * 20);
saveWorkbook(workbook, "Formatting.xlsx");
});
function saveWorkbook(workbook, name) {
workbook.save({ type: 'blob' }, function (data) {
saveAs(data, name);
}, function (error) {
alert('Error exporting: : ' + error);
});
}
</script>