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 |