Comienza a escribir datos en Excel en alguna posición con SheetJS.
No sé cómo plantear adecuadamente mi pregunta, pero tengo un código que toma los datos de una tabla HTML y los coloca en Excel, pero comienza en la posición A1 y digamos que quiero comenzar en C3.
Y estando aquí, ¿puedo importar un archivo xlsx con estilos, hacer una copia y llenarlo con este método?
var t = document.getElementsByTagName("table")[0];
var wb1 = XLSX.utils.table_to_sheet(t);
var wb2 = XLSX.utils.table_to_sheet(t);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, wb1, "Sheet 1");
XLSX.utils.book_append_sheet(wb, wb2, "Sheet 2");
var wbout = XLSX.write(wb, {
bookType: 'xlsx',
bookSST: true,
type: 'binary'
});
saveAs(new Blob([s2ab(wbout)], {
type: "application/octet-stream"
}), 'data.xlsx');
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i = 0; i < s.length; i++) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
<table>
<tr>
<td>Emil</td>
<td>Tobias</td>
<td>Linus</td>
</tr>
<tr>
<td>26</td>
<td>24</td>
<td>20</td>
</tr>
</table>
<button type="button" onclick="downloadXlsx()">Descargar Excel</button>
davy.ai
Para iniciar la hoja de cálculo de Excel en una posición diferente, puedes modificar las variables
wb1
ywb2
antes de añadirlas al libro de trabajo usandoXLSX.utils.book_append_sheet()
.Por ejemplo, para empezar en la posición C3, puedes añadir dos celdas vacías al principio de cada hoja:
En cuanto a importar un archivo xlsx con estilos, puedes usar
XLSX.readFile()
para leer el archivo y luego modificar el objeto de hoja de cálculo resultante antes de añadirlo a tu libro de trabajo. Por ejemplo, para hacer una copia de la primera hoja del archivo y añadirla a tu libro de trabajo: