Desde las bandejas (colas de documentos) de Athento, puede realizarse la exportación de datos visibles mediante el botón Excel. Estar exportación, por defecto, es plana en cuanto a los datos, de manera que se ofrece la posibilidad de que campos de un cierto tipo, como por ejemplo, numérico pueda ser representado de diferentes maneras en el archivo Excel resultado.
Configuración de exportación: customize y export options.
Para realizar una customización de la salida de datos de una bandeja se usan los campos customize y export options. Ambos están en la zona de administración de una bandeja, como se muestra a continuación.
Mediante el campo "Table excel export customize", podemos establecer reglas de visualización y aplicación de estilos siguiendo los distintos tipos ofrecidos por el componente de datatable.js: https://datatables.net/reference/button/excelHtml5
A continuación, se muestra un ejemplo de este campo donde se establece en la columna "G" el estilo con ordinal 59.
59
- Euro currency values (automatically detected and used by buttons - since 1.2.3)
var sheet = xlsx.xl.worksheets['sheet1.xml'];
$('row:gt(1) c[r^="G"]', sheet).attr('s', 59);
De esta forma, la visualización de los datos exportados se aplicar con el formato de moneda con el símbolo Euro.
Mediante el campo "Table excel export option" se ofrece la posibilidad de establecer cambios sobre los datos de un metadato sobre el que se aplicará el estilo. De esta forma, podemos homogeneizar los datos exportados.
A continuación, se muestra un ejemplo de cómo hacer que los datos exportados se unifiquen para mostrar un valor monetario con el símbolo Euro. Para ello, se establece el separador decimal siempre a "." y se elimina el carácter Euro para evitar mostrarlo doblemente.
format: {
body: function(data, row, column, node) {
data = $('<p>' + data + '</p>').text();
if (data.includes('€')) data = data.replace('€', '');
if ($.isNumeric(data.replace(',', '.'))) data = data.replace(',', '.');
return data;
}
}
Tendríamos en la configuración de la siguiente forma:
Mostramos a continuación cómo tendríamos la salida del Excel original y la salida tras la configuración de estos dos campos.
Bandeja:
Salida original sin configuración:
Salida tras la configuración:
Configuración extendida
Sobre la exportación Excel puede aplicarse una configuración más extendida de estilos, aplicando colores a fuente, color de background o incluso bordes. Para ello se definirán en cada caso, los estilos necesarios y luego serán añadidos usando el método addCustomExcelStyles que proporciona Athento.
Después de incluir los nuevos estilos podrán ser aplicados haciendo uso de selectores de jQuery sobre los elementos de la tabla exportada según el formato XML Spreadsheet.
Además, puede aplicarse el ancho fijo de la columna indicando la posición de la columna indicando la posición de la columna y el ancho.
A continuación se muestra un ejemplo de formato extendido.
NOTA. Es importante destacar la información de las posiciones de los estilos que se crean porque serán usados en la inclusión de las filas o celdas deseadas.
var sheet = xlsx.xl.worksheets['sheet1.xml'];
var myFontColors = [
'000000', // idx 0 - black
'ffffff' // idx 1 - white
];
var myFillColors = [
'ccffff', // idx 0 - cyan
'ffc000', // idx 1 - dark green
'0066cc' // idx 2 - blue
];
var myBorders = [
{ style: 'medium', color: '9999ff' }
];
var myCellStyles = [
{ fontIdx: 0, fillIdx: 2, vAlign: 'center', hAlign: 'left' }, // idx 0 - black on blue
{ fontIdx: 1, fillIdx: 2, vAlign: 'center', hAlign: 'left' }, // idx 1 - white on blue
{ fontIdx: 0, fillIdx: 0, vAlign: 'top', hAlign: 'left' } // idx 2 - black on cyan
];
// Add custom styles for Excel exportation
var stylesCount = addCustomExcelStyles(xlsx, myFontColors, myFillColors, myBorders, myCellStyles);
// Apply style with idx 0 (Black on Blue) to row number 1
$('row:eq(1) c', sheet).attr('s', getExcelStyle(stylesCount, 0));
// Apply style with idx 2 (Black on Cyan) to rows after position 1
$('row:lt(1) c', sheet).attr('s', getExcelStyle(stylesCount, 2));
// Apply width: 25 to first column (position 0) and width: 40 to second column (position 1)
$('col', sheet)[0].attr('width', 25);
$('col', sheet)[1].attr('width', 40);
Comentarios
0 comentarios
El artículo está cerrado para comentarios.