He escrito el siguiente código que replica una tabla dinámica de Google Sheets en HTML junto con el formato para enviar en un correo electrónico.
problema: getBackgrounds() no devuelve los colores de las celdas de la tabla dinámica (siempre devuelve #FFFFF). Verifiqué que el rango sea correcto, porque la tabla se representa con la cantidad correcta de filas y columnas junto con los valores de los datos. Sin embargo, sin estilo. Además, si el color de una celda se cambia manualmente en la interfaz de usuario de Sheets antes de ejecutar el script, getBackgrounds() obtendrá ese color. ¿Cómo puedo recuperar el formato de la tabla dinámica?
código:
function getData(){ let ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("TCD").getRange(5,1).getDataRegion(); let background = ss.getBackgrounds(); let val = ss.getDisplayValues(); let fontColor = ss.getFontColors(); let fontStyles = ss.getFontStyles(); let fontWeight = ss.getFontWeights(); let fontSize = ss.getFontSizes(); return [val,background,fontColor,fontStyles,fontWeight,fontSize]; } function setupEmail(attachment, sendBool) { let ss_data = getData(); let data = ss_data[0]; let background = ss_data[1]; let fontColor = ss_data[2]; let fontStyles = ss_data[3]; let fontWeight = ss_data[4]; let fontSize = ss_data[5]; html += "<table border='1' style=\"background-color:#000000;\">"; for (let i = 0; i < data.length; i++) { html += "<tr>" for (let j = 0; j < data[i].length; j++) { html += "<td style=\"height:20px;background-color:" + background[i][j] + "; color: " + fontColor[i][j] + "; font-style: " + fontStyles[i][j] + "; font-weight: " + fontWeight[i][j] + "; font-size: " + (fontSize[i][j] + 6) + "px; text-align: center;\">" + data[i][j] + "</td>"; Logger.log(background[i][j]); } html += "</tr>"; } html + "</table>"EDITAR: he solucionado esto codificando el color de fondo. Si alguien sabe por qué no se pueden devolver los colores de fondo de una tabla dinámica, contribuya.