const UXP = require("uxp"); const XLSX = require("./xlsx.full.min.js"); const storage = UXP.storage, ufs = storage.localFileSystem; /* show file picker (single file, no folders) */ const file = await ufs.getFileForOpening({ types: ["xlsx", "xls", "xlsb"] }); /* read data into an ArrayBuffer */ const ab = await file.read({ format: storage.formats.binary }); /* parse with SheetJS */ const wb = XLSX.read(ab), wsname = wb.SheetNames[0]; const data = XLSX.utils.sheet_to_json(wb.Sheets[wsname], { header: 1, raw: false }); /* Set title */ app.activeDocument.textFrames.itemByName("Title").texts.item(0).contents = wsname; /* Set table */ var tabeller = app.activeDocument.textFrames.itemByName("Table Frame"); var columns = data[0].length; for(var R = 0; R < data.length; ++R) columns = Math.max(columns, data[R].length); var table = tabeller.tables.add({ headerRowCount: 1, bodyRowCount: data.length - 1, columnCount: columns }); for(R = 0; R < data.length; ++R) { if(data[R] == null) continue; for(var C = 0; C < data[R].length; ++C) { if(data[R][C] == null) continue; table.rows.item(R).cells.item(C).contents = data[R][C]; } }