У меня есть следующее:
buttons: [
{
extend: 'excelHtml5', text: 'Export to Excel', footer: true,
exportOptions: {
columns: ':not(.excel-exclude)',
format: {
body: function ( data, column, row ) {
data = data.replace(/<br\s*\/?>/ig, "\n");
return data.replace(/<.*?>/ig, "");
}
}
},
// 11 = red
// 16 = green
customize: function( xlsx ) {
var sheet = xlsx.xl.worksheets['sheet1.xml'];
var col = $('col', sheet);
// FIRST
$('row c[r^="A"],row c[r^="B"],row c[r^="C"],row c[r^="D"],row c[r^="E"],row c[r^="F"],row c[r^="G"],row c[r^="H"],row c[r^="I"],row c[r^="J"],row c[r^="K"],row c[r^="L"],row c[r^="M"],row c[r^="N"],row c[r^="O"],row c[r^="P"],row c[r^="Q"],row c[r^="R"],row c[r^="S"],row c[r^="T"],row c[r^="U"],row c[r^="V"],row c[r^="W"],row c[r^="X"],row c[r^="Y"],row c[r^="Z"]', sheet).each(function() {
if ($('is t', this).text()) {
$(this).attr('s', '55');
}
})
// SECOND
$('row c[r^="Z"],row c[r^="AA"],row c[r^="AB"],row c[r^="AC"]', sheet).not(':first').not(':last').each(function() {
if ($('is t', this).val()==1) {
$(this).attr('s', '11');
}
if ($('is t', this).val()==0) {
$(this).attr('s', '16');
}
})
}
}
],
Бит кода в FIRST
работает хорошо, но есть ли лучший способ получить все столбцы, на которые я ссылаюсь, но в более сжатой форме?
Бит под // SECOND
- для столбцов от Z до BB, я хочу, чтобы фон был зеленым, если значение равно 1, и красным, если фон равен 0, но ничего не окрашено. Я хочу пропустить строки верхнего и нижнего колонтитула. .
Есть очевидная причина, почему? В Excel 0 и 1 встречаются как числа (выравнивание по правому краю в ячейке) - это почему? Как бы я решил это?