Node.js: creare un file DBF

In Node.js possiamo creare un file DBF da importare in LibreOffice.

Node.js di Gabriele Romanato

In Node.js possiamo creare un file DBF da importare in LibreOffice.

Installiamo il modulo richiesto:


npm install dbf --save

Supponendo che i dati si trovino in diversi file di testo, possiamo scrivere:


    'use strict';

    const fs = require('fs');
    const pathToDir = './data/';
    const files = fs.readdirSync(pathToDir);
    const data = [];
    const dbf = require('dbf');
    
    function toBuffer(ab) {
        let buffer = new Buffer(ab.byteLength);
        let view = new Uint8Array(ab);
        for (let i = 0; i < buffer.length; ++i) {
            buffer[i] = view[i];
        }
        return buffer;
    }
    
    files.forEach(file => {
        if(/\.txt$/.test(file)) {
            let fParts = file.split('.');
            let name = fParts[0].replace(/-/g, ' ' ).toUpperCase();
            let contents = fs.readFileSync(pathToDir + file).toString();
            let part = {
                name: name, // Nome della cella
                data: contents // Contenuto della cella
            };
            data.push(part);
        }
    });
    
    let buf = dbf.structure(data);
    fs.writeFileSync('data.dbf', toBuffer(buf.buffer));    
    

Una volta importato il file in LibreOffice Calc avremo una struttura come la seguente:

NOME FILE 1 Contenuto file 1
NOME FILE 2 Contenuto file 2
NOME FILE 3 Contenuto file 3

Commenti