juxscript 1.1.202 → 1.1.203
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataframe.d.ts","sourceRoot":"","sources":["dataframe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AASnC,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,cAAc,GAAG,SAAS,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,cAAc,CAAC;IACjE,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,aAAa,CAOnB;IACF,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,aAAa,CAAgE;IACrF,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,OAAO,CAAC,YAAY,CAAiE;IACrF,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,qBAAqB,CAAkB;gBAEnC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAmCtD,SAAS,CAAC,gBAAgB,IAAI,SAAS,MAAM,EAAE;IAC/C,SAAS,CAAC,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAMhD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAwB9B,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAWpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI;IAiBnE,UAAU,CAAC,KAAK,GAAE,MAAsB,EAAE,MAAM,GAAE,MAAoC,EAAE,IAAI,GAAE,MAAiB,GAAG,IAAI;IAStH,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAC5B,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAM3B,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,SAAS,GAAG,IAAI;IAQ7C,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAI7E,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAI/B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;IAI7C,IAAI,CAAC,CAAC,GAAE,MAAU,GAAG,IAAI;IAIzB,IAAI,CAAC,CAAC,GAAE,MAAU,GAAG,IAAI;IAIzB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,GAAG,IAAI;IAIpF,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAQxH,IAAI,EAAE,IAAI,SAAS,GAAG,IAAI,CAAqB;IAC/C,IAAI,MAAM,IAAI,aAAa,CAAyB;IACpD,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAAwB;IACjD,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IACtC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IACjC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;IAC/B,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAsC;IACnE,IAAI,OAAO,IAAI,MAAM,EAAE,CAAoC;IAErD,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUhD,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IACzB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAC1B,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAC5B,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAC3B,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC5B,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC7B,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC/B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;YAMf,WAAW;IAyDzB,OAAO,CAAC,iBAAiB;IA+HzB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"dataframe.d.ts","sourceRoot":"","sources":["dataframe.ts"],"names":[],"mappings":"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"}
|
|
@@ -372,9 +372,23 @@ export class DataFrameComponent extends BaseComponent {
|
|
|
372
372
|
this.state.sourceName = sourceName;
|
|
373
373
|
this.state.rowCount = df.height;
|
|
374
374
|
this.state.colCount = df.width;
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
375
|
+
// Only strip __EMPTY columns that are ENTIRELY null/empty
|
|
376
|
+
const cols = df.columns;
|
|
377
|
+
const rows = df.toRows();
|
|
378
|
+
const emptyColumns = cols.filter(c => {
|
|
379
|
+
if (!c.startsWith('__EMPTY'))
|
|
380
|
+
return false;
|
|
381
|
+
// Check if ALL values in this column are null/empty
|
|
382
|
+
return rows.every(row => {
|
|
383
|
+
const val = row[c];
|
|
384
|
+
return val === null || val === undefined || String(val).trim() === '';
|
|
385
|
+
});
|
|
386
|
+
});
|
|
387
|
+
if (emptyColumns.length > 0) {
|
|
388
|
+
const keepCols = cols.filter(c => !emptyColumns.includes(c));
|
|
389
|
+
if (keepCols.length > 0) {
|
|
390
|
+
this._df = df.select(...keepCols);
|
|
391
|
+
}
|
|
378
392
|
}
|
|
379
393
|
if (this._table && this._df) {
|
|
380
394
|
const columnDefs = this._df.columns.map(col => ({ key: col, label: col }));
|
|
@@ -463,9 +463,23 @@ export class DataFrameComponent extends BaseComponent<DataFrameState> {
|
|
|
463
463
|
this.state.rowCount = df.height;
|
|
464
464
|
this.state.colCount = df.width;
|
|
465
465
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
466
|
+
// Only strip __EMPTY columns that are ENTIRELY null/empty
|
|
467
|
+
const cols = df.columns;
|
|
468
|
+
const rows = df.toRows();
|
|
469
|
+
const emptyColumns = cols.filter(c => {
|
|
470
|
+
if (!c.startsWith('__EMPTY')) return false;
|
|
471
|
+
// Check if ALL values in this column are null/empty
|
|
472
|
+
return rows.every(row => {
|
|
473
|
+
const val = row[c];
|
|
474
|
+
return val === null || val === undefined || String(val).trim() === '';
|
|
475
|
+
});
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
if (emptyColumns.length > 0) {
|
|
479
|
+
const keepCols = cols.filter(c => !emptyColumns.includes(c));
|
|
480
|
+
if (keepCols.length > 0) {
|
|
481
|
+
this._df = df.select(...keepCols);
|
|
482
|
+
}
|
|
469
483
|
}
|
|
470
484
|
|
|
471
485
|
if (this._table && this._df) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabularDriver.d.ts","sourceRoot":"","sources":["TabularDriver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TabularDriver.d.ts","sourceRoot":"","sources":["TabularDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -520,69 +520,90 @@ export class TabularDriver {
|
|
|
520
520
|
continue;
|
|
521
521
|
}
|
|
522
522
|
const range = XLSX.utils.decode_range(ref);
|
|
523
|
-
const startRow = range.s.r;
|
|
524
|
-
const endRow = range.e.r;
|
|
525
|
-
const startCol = range.s.c;
|
|
526
|
-
const endCol = range.e.c;
|
|
527
|
-
const numCols = endCol - startCol + 1;
|
|
523
|
+
const startRow = range.s.r;
|
|
524
|
+
const endRow = range.e.r;
|
|
525
|
+
const startCol = range.s.c;
|
|
526
|
+
const endCol = range.e.c;
|
|
528
527
|
if (endRow < startRow) {
|
|
529
528
|
processedSheets++;
|
|
530
529
|
continue;
|
|
531
530
|
}
|
|
532
|
-
//
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
531
|
+
// Use sheet_to_json with header:1 to get array-of-arrays
|
|
532
|
+
// This is the most reliable way to read all data
|
|
533
|
+
const rawData = XLSX.utils.sheet_to_json(worksheet, {
|
|
534
|
+
header: 1,
|
|
535
|
+
defval: null,
|
|
536
|
+
blankrows: true,
|
|
537
|
+
raw: true
|
|
538
|
+
});
|
|
539
|
+
if (rawData.length === 0) {
|
|
540
|
+
processedSheets++;
|
|
541
|
+
continue;
|
|
542
|
+
}
|
|
543
|
+
// Ensure all rows have the same number of columns
|
|
544
|
+
const maxCols = Math.max(endCol - startCol + 1, ...rawData.map(r => (r ? r.length : 0)));
|
|
545
|
+
// Pad short rows with nulls
|
|
546
|
+
for (let i = 0; i < rawData.length; i++) {
|
|
547
|
+
if (!rawData[i]) {
|
|
548
|
+
rawData[i] = new Array(maxCols).fill(null);
|
|
546
549
|
}
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
550
|
+
else {
|
|
551
|
+
while (rawData[i].length < maxCols) {
|
|
552
|
+
rawData[i].push(null);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
// Validate headerRow is within bounds
|
|
557
|
+
if (headerRow >= rawData.length) {
|
|
558
|
+
console.warn(`[TabularDriver] headerRow ${headerRow} exceeds data length ${rawData.length}`);
|
|
553
559
|
processedSheets++;
|
|
554
560
|
continue;
|
|
555
561
|
}
|
|
556
|
-
//
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
562
|
+
// Debug: log what we see at the header row
|
|
563
|
+
console.log(`[TabularDriver] Sheet "${sheetName}" headerRow=${headerRow}, rawData.length=${rawData.length}, maxCols=${maxCols}`);
|
|
564
|
+
console.log(`[TabularDriver] Header row data:`, rawData[headerRow]);
|
|
565
|
+
// Extract headers from the specified row
|
|
566
|
+
const headerRowData = rawData[headerRow];
|
|
567
|
+
const headers = [];
|
|
568
|
+
for (let j = 0; j < maxCols; j++) {
|
|
569
|
+
const h = headerRowData[j];
|
|
560
570
|
if (h === null || h === undefined || String(h).trim() === '') {
|
|
561
|
-
|
|
571
|
+
headers.push(`__EMPTY${j > 0 ? '_' + j : ''}`);
|
|
562
572
|
}
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
573
|
+
else {
|
|
574
|
+
headers.push(String(h).trim());
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
// Count valid (non-empty) headers
|
|
566
578
|
const validHeaders = headers.filter(h => !h.startsWith('__EMPTY'));
|
|
579
|
+
console.log(`[TabularDriver] Headers:`, headers);
|
|
580
|
+
console.log(`[TabularDriver] Valid headers: ${validHeaders.length}/${headers.length}`);
|
|
567
581
|
if (validHeaders.length === 0) {
|
|
568
582
|
console.warn(`[TabularDriver] No valid headers found at row ${headerRow} in sheet "${sheetName}"`);
|
|
569
583
|
processedSheets++;
|
|
570
584
|
continue;
|
|
571
585
|
}
|
|
572
|
-
// Build
|
|
586
|
+
// Build rows from data AFTER the header row
|
|
573
587
|
const rows = [];
|
|
574
|
-
for (let
|
|
575
|
-
const rowData =
|
|
588
|
+
for (let i = headerRow + 1; i < rawData.length; i++) {
|
|
589
|
+
const rowData = rawData[i];
|
|
576
590
|
// Skip completely empty rows
|
|
577
|
-
|
|
591
|
+
if (!rowData)
|
|
592
|
+
continue;
|
|
593
|
+
const hasContent = rowData.some((cell) => cell !== null && cell !== undefined && String(cell).trim() !== '');
|
|
578
594
|
if (!hasContent)
|
|
579
595
|
continue;
|
|
580
596
|
const row = {};
|
|
581
597
|
for (let j = 0; j < headers.length; j++) {
|
|
582
|
-
row[headers[j]] =
|
|
598
|
+
row[headers[j]] = j < rowData.length ? rowData[j] : null;
|
|
583
599
|
}
|
|
584
600
|
rows.push(row);
|
|
585
601
|
}
|
|
602
|
+
console.log(`[TabularDriver] Built ${rows.length} data rows`);
|
|
603
|
+
if (rows.length > 0) {
|
|
604
|
+
console.log(`[TabularDriver] First row keys:`, Object.keys(rows[0]));
|
|
605
|
+
console.log(`[TabularDriver] First row:`, rows[0]);
|
|
606
|
+
}
|
|
586
607
|
if (rows.length > 0) {
|
|
587
608
|
sheets[sheetName] = new DataFrame(rows);
|
|
588
609
|
}
|
|
@@ -646,81 +646,104 @@ export class TabularDriver {
|
|
|
646
646
|
}
|
|
647
647
|
|
|
648
648
|
const range = XLSX.utils.decode_range(ref);
|
|
649
|
-
const startRow = range.s.r;
|
|
650
|
-
const endRow = range.e.r;
|
|
651
|
-
const startCol = range.s.c;
|
|
652
|
-
const endCol = range.e.c;
|
|
653
|
-
const numCols = endCol - startCol + 1;
|
|
649
|
+
const startRow = range.s.r;
|
|
650
|
+
const endRow = range.e.r;
|
|
651
|
+
const startCol = range.s.c;
|
|
652
|
+
const endCol = range.e.c;
|
|
654
653
|
|
|
655
654
|
if (endRow < startRow) {
|
|
656
655
|
processedSheets++;
|
|
657
656
|
continue;
|
|
658
657
|
}
|
|
659
658
|
|
|
660
|
-
//
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
};
|
|
659
|
+
// Use sheet_to_json with header:1 to get array-of-arrays
|
|
660
|
+
// This is the most reliable way to read all data
|
|
661
|
+
const rawData: any[][] = XLSX.utils.sheet_to_json(worksheet, {
|
|
662
|
+
header: 1,
|
|
663
|
+
defval: null,
|
|
664
|
+
blankrows: true,
|
|
665
|
+
raw: true
|
|
666
|
+
});
|
|
668
667
|
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
};
|
|
668
|
+
if (rawData.length === 0) {
|
|
669
|
+
processedSheets++;
|
|
670
|
+
continue;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
// Ensure all rows have the same number of columns
|
|
674
|
+
const maxCols = Math.max(endCol - startCol + 1, ...rawData.map(r => (r ? r.length : 0)));
|
|
677
675
|
|
|
678
|
-
//
|
|
679
|
-
|
|
676
|
+
// Pad short rows with nulls
|
|
677
|
+
for (let i = 0; i < rawData.length; i++) {
|
|
678
|
+
if (!rawData[i]) {
|
|
679
|
+
rawData[i] = new Array(maxCols).fill(null);
|
|
680
|
+
} else {
|
|
681
|
+
while (rawData[i].length < maxCols) {
|
|
682
|
+
rawData[i].push(null);
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
}
|
|
680
686
|
|
|
681
|
-
|
|
682
|
-
|
|
687
|
+
// Validate headerRow is within bounds
|
|
688
|
+
if (headerRow >= rawData.length) {
|
|
689
|
+
console.warn(`[TabularDriver] headerRow ${headerRow} exceeds data length ${rawData.length}`);
|
|
683
690
|
processedSheets++;
|
|
684
691
|
continue;
|
|
685
692
|
}
|
|
686
693
|
|
|
687
|
-
//
|
|
688
|
-
|
|
694
|
+
// Debug: log what we see at the header row
|
|
695
|
+
console.log(`[TabularDriver] Sheet "${sheetName}" headerRow=${headerRow}, rawData.length=${rawData.length}, maxCols=${maxCols}`);
|
|
696
|
+
console.log(`[TabularDriver] Header row data:`, rawData[headerRow]);
|
|
689
697
|
|
|
690
|
-
//
|
|
691
|
-
const
|
|
698
|
+
// Extract headers from the specified row
|
|
699
|
+
const headerRowData = rawData[headerRow];
|
|
700
|
+
const headers: string[] = [];
|
|
701
|
+
for (let j = 0; j < maxCols; j++) {
|
|
702
|
+
const h = headerRowData[j];
|
|
692
703
|
if (h === null || h === undefined || String(h).trim() === '') {
|
|
693
|
-
|
|
704
|
+
headers.push(`__EMPTY${j > 0 ? '_' + j : ''}`);
|
|
705
|
+
} else {
|
|
706
|
+
headers.push(String(h).trim());
|
|
694
707
|
}
|
|
695
|
-
|
|
696
|
-
});
|
|
708
|
+
}
|
|
697
709
|
|
|
698
|
-
//
|
|
710
|
+
// Count valid (non-empty) headers
|
|
699
711
|
const validHeaders = headers.filter(h => !h.startsWith('__EMPTY'));
|
|
712
|
+
console.log(`[TabularDriver] Headers:`, headers);
|
|
713
|
+
console.log(`[TabularDriver] Valid headers: ${validHeaders.length}/${headers.length}`);
|
|
714
|
+
|
|
700
715
|
if (validHeaders.length === 0) {
|
|
701
716
|
console.warn(`[TabularDriver] No valid headers found at row ${headerRow} in sheet "${sheetName}"`);
|
|
702
717
|
processedSheets++;
|
|
703
718
|
continue;
|
|
704
719
|
}
|
|
705
720
|
|
|
706
|
-
// Build
|
|
721
|
+
// Build rows from data AFTER the header row
|
|
707
722
|
const rows: Record<string, any>[] = [];
|
|
708
|
-
for (let
|
|
709
|
-
const rowData =
|
|
723
|
+
for (let i = headerRow + 1; i < rawData.length; i++) {
|
|
724
|
+
const rowData = rawData[i];
|
|
710
725
|
|
|
711
726
|
// Skip completely empty rows
|
|
712
|
-
|
|
727
|
+
if (!rowData) continue;
|
|
728
|
+
|
|
729
|
+
const hasContent = rowData.some((cell: any) =>
|
|
713
730
|
cell !== null && cell !== undefined && String(cell).trim() !== ''
|
|
714
731
|
);
|
|
715
732
|
if (!hasContent) continue;
|
|
716
733
|
|
|
717
734
|
const row: Record<string, any> = {};
|
|
718
735
|
for (let j = 0; j < headers.length; j++) {
|
|
719
|
-
row[headers[j]] =
|
|
736
|
+
row[headers[j]] = j < rowData.length ? rowData[j] : null;
|
|
720
737
|
}
|
|
721
738
|
rows.push(row);
|
|
722
739
|
}
|
|
723
740
|
|
|
741
|
+
console.log(`[TabularDriver] Built ${rows.length} data rows`);
|
|
742
|
+
if (rows.length > 0) {
|
|
743
|
+
console.log(`[TabularDriver] First row keys:`, Object.keys(rows[0]));
|
|
744
|
+
console.log(`[TabularDriver] First row:`, rows[0]);
|
|
745
|
+
}
|
|
746
|
+
|
|
724
747
|
if (rows.length > 0) {
|
|
725
748
|
sheets[sheetName] = new DataFrame(rows);
|
|
726
749
|
}
|