2015-08-20 33 views
6

Attualmente sto lavorando a un modulo che richiederà l'input dell'utente e lo aggiungerà a una riga di un foglio Excel, dato che ora sono riuscito a creare excel sheet usando plug-in di terze parti (node-xls per essere specifici). Il problema si pone se voglio aggiungere un'altra riga all'excel, elimina la voce precedente e aggiunge la nuova invece di aggiungere i dati alla riga successiva.come aggiungere a un file excel in nodejs

provato a leggere l'excel e quindi concatenare i buffer e scrivere di nuovo il file, ma risulta che sta corrompendo il file e lo rende inutilizzabile.

Come si aggiungono i dati alla fine del foglio Excel? Sono nuovo a nodejs e buffer

var fs = require('fs'); 
var NodeXls = require('node-xls'); 
var tool = new NodeXls(); 
var xls = tool.json2xls({firstName: "arjun", lastName: "u", dob:"12/3/2008"}, {order:["firstName", "lastName", "dob"]}); 
fs.appendFile('output.xlsx', xls, 'binary', function(err){ 
if(err) 
    alert("File is readOnly or is being used by another application, please close it and continue!"); 
}); 

risposta

2

Hai provato Exceljs. Aiuta a leggere, manipolare e scrivere dati e stili di foglio di calcolo in XLSX e JSON.

controllo sul link sotto per i dettagli

https://www.npmjs.com/package/exceljs

Il tuo problema di aggiungere righe o aggiungere righe è risolto qui:

worksheet.addRow({id: 1, name: 'John Doe', dob: new Date(1970,1,1)}); 

var rowValues = []; 
rowValues[1] = 4; 
rowValues[5] = 'Kyle'; 
rowValues[9] = new Date(); 
worksheet.addRow(rowValues); 

// Add an array of rows 
var rows = [ 
    [5,'Bob',new Date()], // row by array 
    {id:6, name: 'Barbara', dob: new Date()} 
]; 
worksheet.addRows(rows); 
0

installare il modulo NPM 'spread_sheet', sarà sicuramente risolvere i problemi dell'aggiunta di righe e della lettura di righe dal foglio di calcolo da qualsiasi foglio.

+0

utilizzare la formattazione corretta e, come si fa a sapere che ** ** must risolto il problema? – SteveFest

+0

Ho anche affrontato lo stesso problema che ha funzionato per me –

+0

Ma perché ** deve ** risolverlo? Non funzionerebbe su alcuni fogli di calcolo? – SteveFest

0

Si aggiungerà una riga alla volta

var spread_sheet = require('spread_sheet'); 
var row = "1,2,Jack,Pirate"; 
var filePath = '/home/Pranjal/Desktop/test.xlsx'; 
var sheetName = "Sheet1"; 

spread_sheet.addRow(row,filePath,sheetName,function(err,result){ 
    console.log(err,result) 
})