Tengo una hoja de Excel que tiene 500 filas. Estoy tratando de obtener las filas de 101 a 200.
Busqué en Google y encontré un ejemplo para obtener filas iniciales, por ejemplo, 1 a 100 o 1 a 1000, o incluso 1 a cualquier número.
Pero no he encontrado ningún código para obtener filas desde la fila m a la fila n (aquí 'm' y 'n' pueden ser cualquier número, por ejemplo, m = 101 a n = 200)
A continuación se muestra el código que he encontrado para obtener las primeras 100 filas:
let workbook = XLSX.readFile('./files/uploaded_files/testfile.xlsx', {sheetRows: 100}) const wsname = workbook.SheetNames[0]; const ws = workbook.Sheets[wsname]; var exceldata = XLSX.utils.sheet_to_json(ws);Incluso si hay algún otro módulo para obtener las filas intermedias, me gustaría saber si hay alguno.
Usando un ejemplo más pequeño de:
Hay varias opciones:
Puede usar su enfoque actual y sheet_to_json slice ejemplo
// option 1 const maxRow = 6; const minRow = 3; const wb = XLSX.readFile("./Book1.xlsx", {sheetRows: maxRow}); const ws = wb.Sheets[wb.SheetNames[0]]; let data = XLSX.utils.sheet_to_json(ws); data = data.slice(minRow <= 2 ? 0 : minRow - 2); console.log(data); Es minRow - 2 para tener en cuenta que 1 fila son encabezados y que la otra 1 es para incluir la fila 3, no para excluirla. Esto produce:
[ { a: 4, b: 5, c: 6 }, { a: 7, b: 8, c: 9 }, { a: 10, b: 11, c: 12 }, { a: 13, b: 14, c: 15 } ] Otra opción es combinar el uso de las opciones de range y header (ver aquí ). range le permite controlar qué rango considera sheet_to_json y el header se usa para definir las claves utilizadas en la matriz de objetos de salida.
Puede usar esto después de importar todo el archivo o continuar usando la opción sheetRows también, por ejemplo:
// option 2 const importRange = "A3:F6"; const headers = ["a", "b", "c"]; const wb = XLSX.readFile("./Book1.xlsx"); // not using sheetRows const ws = wb.Sheets[wb.SheetNames[0]]; const data = XLSX.utils.sheet_to_json(ws, {range: importRange, header: headers}); console.log(data);Que produce:
[ { a: 4, b: 5, c: 6 }, { a: 7, b: 8, c: 9 }, { a: 10, b: 11, c: 12 }, { a: 13, b: 14, c: 15 } ] Tenga en cuenta que si omite la opción de headers , el resultado es:
[ { '4': 7, '5': 8, '6': 9 }, { '4': 10, '5': 11, '6': 12 }, { '4': 13, '5': 14, '6': 15 } ]Porque los valores en la fila 3 se convierten en los nuevos encabezados predeterminados (que creo que probablemente no quieras).
Finalmente, si no conoce los encabezados de antemano, puede obtener una matriz de matrices y calcular los encabezados más tarde:
// option 3 const importRange = "A3:F6"; const headers = 1; const wb = XLSX.readFile("./Book1.xlsx"); // not using sheetRows const ws = wb.Sheets[wb.SheetNames[0]]; const data = XLSX.utils.sheet_to_json(ws, {range: importRange, header: headers}); console.log(data);Que produce:
[ [ 4, 5, 6 ], [ 7, 8, 9 ], [ 10, 11, 12 ], [ 13, 14, 15 ] ]