Full-stack NPI (New Product Introduction) gate tracking tool with: - Express/TypeScript API with PostgreSQL - React/Vite/Mantine frontend - 13-gate process (G0-G12) with 4 product categories - RACI matrix auto-population from templates - File attachments with preview (images, PDFs, text) - Kanban board, Gantt/timeline views - Docker Compose orchestration Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
22 lines
900 B
JavaScript
22 lines
900 B
JavaScript
import XLSX from 'xlsx';
|
|
import { readFileSync } from 'fs';
|
|
|
|
const workbook = XLSX.read(readFileSync('../NPI - AGENT Instructions.xlsx'));
|
|
|
|
console.log('Sheet names:', workbook.SheetNames);
|
|
console.log('---');
|
|
|
|
for (const name of workbook.SheetNames) {
|
|
const sheet = workbook.Sheets[name];
|
|
const data = XLSX.utils.sheet_to_json(sheet, { header: 1 });
|
|
console.log(`\n=== Sheet: "${name}" ===`);
|
|
console.log(`Rows: ${data.length}`);
|
|
if (data.length > 0) {
|
|
console.log('Headers (row 0):', JSON.stringify(data[0]));
|
|
if (data.length > 1) console.log('Row 1:', JSON.stringify(data[1]));
|
|
if (data.length > 2) console.log('Row 2:', JSON.stringify(data[2]));
|
|
if (data.length > 3) console.log('Row 3:', JSON.stringify(data[3]));
|
|
if (data.length > 5) console.log('Row 5:', JSON.stringify(data[5]));
|
|
if (data.length > 10) console.log('Row 10:', JSON.stringify(data[10]));
|
|
}
|
|
}
|