Node.js: creare un file DBF

Node.js: creare un file DBF

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
Torna su