Javascript 当导出为EXCEL文件时,为什么jQuery数据表在Laravel中的月份为两位数时不能正确导出日期?
我想将数据导出为视图中所示的Javascript 当导出为EXCEL文件时,为什么jQuery数据表在Laravel中的月份为两位数时不能正确导出日期?,javascript,jquery,datatables,Javascript,Jquery,Datatables,我想将数据导出为视图中所示的EXCEL文件,它可以正常工作,但没有正确导出日期,我尝试了如下操作: $('#get_hourly_report').click(function () { var id = $('#teacher').val(); var first_date = $('#jalali-datepicker3').val(); var second_date = $('#jalali-datepicker4').val();
EXCEL
文件,它可以正常工作,但没有正确导出日期,我尝试了如下操作:
$('#get_hourly_report').click(function () {
var id = $('#teacher').val();
var first_date = $('#jalali-datepicker3').val();
var second_date = $('#jalali-datepicker4').val();
$(".h_report_icon").addClass('fa fa-spinner fa-spin');
$.ajax({
method: "get",
url: "attendance/getTeacherAttendanceReport/",
data: {
'id': id,
'f_date': first_date,
's_date': second_date
},
success: function (data) {
$.fn.dataTable.moment('DD/MM/YYYY');
table = $('#example2').DataTable({
destroy: true,
"bPaginate": false,
dom: 'Bfrtip',
bFilter: false,
buttons: [
{
extend: 'excelHtml5',
footer: true,
customize: (xlsx, config, dataTable) => {
let sheet = xlsx.xl.worksheets['sheet1.xml'];
let footerIndex = $('sheetData row', sheet).length;
let $footerRows = $('tr', dataTable.footer());
// If there are more than one footer rows
if ($footerRows.length > 1) {
// First header row is already present, so we start from the second row (i = 1)
for (let i = 1; i < $footerRows.length; i++) {
// Get the current footer row
let $footerRow = $footerRows[i];
// Get footer row columns
let $footerRowCols = $('th', $footerRow);
// Increment the last row index
footerIndex++;
// Create the new header row XML using footerIndex and append it at sheetData
$('sheetData', sheet).append(`
<row r="${footerIndex}">
${$footerRowCols.map((index, el) => `
<c t="inlineStr" r="${String.fromCharCode(65 + index)}${footerIndex}" s="2">
<is>
<t xml:space="preserve">${$(el).text()}</t>
</is>
</c>
`).get().join('')}
</row>
`);
}
}
}
}
],
"processing": true,
data: data.teacherAttendanceReport,
columns: [
{
title: 'شماره', render: function (data, type, row, meta) {
return meta.row + meta.settings._iDisplayStart + 1;
}
},
{title: 'نام کارمند', data: 'first_name'},
{title: 'روز هفته', data: 'persian_name'},
{title: 'ماه', data: 'month_name'},
{title: 'تاریخ مکمل', data: 'date'},
{title: 'ساعت درسی', data: 'full_time'},
{title: 'حالت حاضری', data: 'as_persian_name'},
],
});
$(".h_report_icon").removeClass('fa fa-spinner fa-spin');
$('#h_present').html(data.present)
$('#h_absent').html(data.absent)
},
error: function () {
}
});
});
$(“#获取每小时报告”)。单击(函数(){
var id=$('#teacher').val();
var first_date=$('jalali-datepicker3').val();
var second_date=$('jalali-datepicker4').val();
$(“.h_report_icon”).addClass('fa-fa-spinner-fa-spin');
$.ajax({
方法:“获取”,
url:“出席/GetteacherattendaceReport/”,
数据:{
“id”:id,
“f_日期”:第一个f_日期,
's_date':第二个日期
},
成功:功能(数据){
$.fn.dataTable.moment('DD/MM/YYYY');
表=$('#示例2')。数据表({
摧毁:没错,
“bPaginate”:错误,
dom:'Bfrtip',
过滤:错,
按钮:[
{
扩展:“excelHtml5”,
页脚:是的,
定制:(xlsx,配置,数据表)=>{
let sheet=xlsx.xl.worksheets['sheet1.xml'];
让footerIndex=$('sheetData行',sheet).length;
让$footerRows=$('tr',dataTable.footer());
//如果有多个页脚行
如果($footerRows.length>1){
//第一个标题行已经存在,因此我们从第二行开始(i=1)
对于(设i=1;i<$footerRows.length;i++){
//获取当前页脚行
设$footerRow=$footerRows[i];
//获取页脚行列
设$footerRowCols=$('th',$footerRow);
//增加最后一行索引
footerIndex++;
//使用footerIndex创建新的页眉行XML,并将其附加到sheetData
$('sheetData',sheet).附加(`
${$footerRowCols.map((索引,el)=>`
${$(el.text()}
`).get().join(“”)}
`);
}
}
}
}
],
“处理”:对,
数据:data.teacherAttendanceReport,
栏目:[
{
标题:呈现:函数(数据、类型、行、元){
返回meta.row+meta.settings.iDisplayStart+1;
}
},
{标题:'名字',数据:'名字',
{标题:“波斯语名称”},
{标题:'月名',数据:'月名',
{标题:'date',
{标题:“全职”},
{标题:'波斯名字',数据:'波斯名字',
],
});
$(“.h_report_icon”).removeClass('fa-fa-spinner-fa-spin');
$('h#u present').html(data.present)
$('h#u缺席').html(data.缺席)
},
错误:函数(){
}
});
});
当我将导出作为EXCEL
文件时,如果日期类似于1400-2-15
,则结果与预期一致。但是如果日期像1400-02-13
,那么它会像一样导出
我希望它像1400-02-13
,如果有人知道问题出在哪里,请帮助我 在HTML头中插入utf-8元标记:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
或
我已经添加了这个。行返回时刻(数据'YYYY-MM-DD')。格式('YYYY-MM-DD')
没有任何作用。您希望日期的格式为YYYY-MM-DD
,并且您正在使用相同的格式对其进行格式化。问题可能是数据首先不在YYYY-MM-DD
中,因此矩无法解析它,或者日期列不是第三列。如果您的表格与照片完全相同,那么它就不是第三列。@PouriaMoosavi那么我该怎么做?@Zia Yamin,您是否尝试增加Excel文件中日期导出到的列的宽度?当列宽无法显示完整日期或数字时,Excel将显示。别忘了投票给对你有用的解决方案…@Raky是的,我投了票,随着我增加专栏,的数量越来越多。
<meta charset="utf-8">