Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

504
Views
Analiza XLSX con Node y crea json

Ok, encontré este node_module muy bien documentado llamado js-xlsx

Pregunta: ¿Cómo puedo analizar un xlsx para generar json ?

Así es como se ve la hoja de Excel:

ingrese la descripción de la imagen aquí

Al final, el json debería verse así:

 [ { "id": 1, "Headline": "Team: Sally Pearson", "Location": "Austrailia", "BodyText": "...", "Media: "..." }, { "id": 2, "Headline": "Team: Rebeca Andrade", "Location": "Brazil", "BodyText": "...", "Media: "..." } ]

índice.js:

 if(typeof require !== 'undefined') { console.log('hey'); XLSX = require('xlsx'); } var workbook = XLSX.readFile('./assets/visa.xlsx'); var sheet_name_list = workbook.SheetNames; sheet_name_list.forEach(function(y) { /* iterate through sheets */ var worksheet = workbook.Sheets[y]; for (z in worksheet) { /* all keys that do not begin with "!" correspond to cell addresses */ if(z[0] === '!') continue; // console.log(y + "!" + z + "=" + JSON.stringify(worksheet[z].v)); } }); XLSX.writeFile(workbook, 'out.xlsx');
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

También puedes usar

 var XLSX = require('xlsx'); var workbook = XLSX.readFile('Master.xlsx'); var sheet_name_list = workbook.SheetNames; console.log(XLSX.utils.sheet_to_json(workbook.Sheets[sheet_name_list[0]]))
over 4 years ago · Santiago Trujillo Report

0

Versión mejorada de la respuesta "Josh Marinacci", leerá más allá de la columna Z (es decir, AA1).

 var XLSX = require('xlsx'); var workbook = XLSX.readFile('test.xlsx'); var sheet_name_list = workbook.SheetNames; sheet_name_list.forEach(function(y) { var worksheet = workbook.Sheets[y]; var headers = {}; var data = []; for(z in worksheet) { if(z[0] === '!') continue; //parse out the column, row, and value var tt = 0; for (var i = 0; i < z.length; i++) { if (!isNaN(z[i])) { tt = i; break; } }; var col = z.substring(0,tt); var row = parseInt(z.substring(tt)); var value = worksheet[z].v; //store header names if(row == 1 && value) { headers[col] = value; continue; } if(!data[row]) data[row]={}; data[row][headers[col]] = value; } //drop those first two rows which are empty data.shift(); data.shift(); console.log(data); });
over 4 years ago · Santiago Trujillo Report

0

Creo que este código hará lo que quieras. Almacena la primera fila como un conjunto de encabezados, luego almacena el resto en un objeto de datos que puede escribir en el disco como JSON.

 var XLSX = require('xlsx'); var workbook = XLSX.readFile('test.xlsx'); var sheet_name_list = workbook.SheetNames; sheet_name_list.forEach(function(y) { var worksheet = workbook.Sheets[y]; var headers = {}; var data = []; for(z in worksheet) { if(z[0] === '!') continue; //parse out the column, row, and value var col = z.substring(0,1); var row = parseInt(z.substring(1)); var value = worksheet[z].v; //store header names if(row == 1) { headers[col] = value; continue; } if(!data[row]) data[row]={}; data[row][headers[col]] = value; } //drop those first two rows which are empty data.shift(); data.shift(); console.log(data); });

imprime

 [ { id: 1, headline: 'team: sally pearson', location: 'Australia', 'body text': 'majority have…', media: 'http://www.youtube.com/foo' }, { id: 2, headline: 'Team: rebecca', location: 'Brazil', 'body text': 'it is a long established…', media: 'http://s2.image.foo/' } ]
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!