Parse tab-separated text exports from Malvern Panalytical Zetasizer instruments.
The parser dynamically discovers array columns (e.g., Sizes, Intensities, Volumes, Numbers) and scalar metadata columns from the header row, so it works regardless of which fields the user selected for export.
npm install parse-zetasizerimport { readFileSync } from 'node:fs';
import { fromText } from 'parse-zetasizer';
const text = readFileSync('zetasizer-export.txt', 'utf8');
const records = fromText(text);
// records is an array of measurements, one per row
for (const record of records) {
// record.arrays contains array data (e.g., Sizes, Intensities)
console.log(record.arrays.Sizes.data); // Float64Array
console.log(record.arrays.Sizes.units); // "d.nm"
// record.meta contains scalar metadata
console.log(record.meta['Sample Name']);
console.log(record.meta['Temperature (°C)']);
}