2015-08-20 35 views
6

Obecnie pracuję nad formularzem, który zajmie wpis użytkownika i doda go do jednego wiersza arkusza programu Excel, od tej pory udało mi się zrobić arkusz Excel za pomocą wtyczek 3rd party (węzeł-xls jest specyficzny). Problem powstaje, jeśli chcę dodać kolejny wiersz do programu Excel, usuwa stary wpis i dodaje nowy zamiast dołączania danych do następnego wiersza.jak dołączyć do pliku Excela w nodejs

Próbowano przeczytać program Excel, a następnie połączyć bufor i ponownie zapisać plik, ale okazało się, że plik jest uszkodzony i powoduje, że nie nadaje się do użytku.

Jak mogę dołączyć dane na końcu arkusza programu Excel? Jestem nowy dla nodejs i buforów

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!"); 
}); 

Odpowiedz

2

Czy wypróbowałeś program Exceljs? Pomaga w czytaniu, manipulowaniu i zapisywaniu danych i stylów arkusza kalkulacyjnego w formatach XLSX i JSON.

czek na poniższy link do szczegółów

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

Twój problem dodawania wierszy lub dołączyć wiersze rozwiązano tutaj:

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

zainstalować moduł npm 'spread_sheet', będzie to z pewnością rozwiązać problemy z dodawaniem wierszy oraz odczytywanie wierszy z arkusza kalkulacyjnego z dowolnego arkusza.

+0

Używaj odpowiedniego formatowania, a skąd wiesz, że ** ** musi rozwiązać ten problem? – SteveFest

+0

Mam również do czynienia z tym samym problemem, który zadziałał dla mnie –

+0

Ale dlaczego ** musi ** rozwiązać? Czy nie działałoby to w przypadku niektórych arkuszy kalkulacyjnych? – SteveFest

0

Będzie dodać jeden wiersz naraz

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) 
})