juxscript 1.1.201 → 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":"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
|
|
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;IAgFrB,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,oBAAoB;YASd,sBAAsB;IAyNpC,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,oBAAoB;IAuM5B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI;IAExC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI;CAoErE;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,kBAAkB,CAExF"}
|
|
@@ -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,39 +520,50 @@ export class TabularDriver {
|
|
|
520
520
|
continue;
|
|
521
521
|
}
|
|
522
522
|
const range = XLSX.utils.decode_range(ref);
|
|
523
|
-
const
|
|
524
|
-
const
|
|
525
|
-
|
|
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
|
+
if (endRow < startRow) {
|
|
526
528
|
processedSheets++;
|
|
527
529
|
continue;
|
|
528
530
|
}
|
|
529
|
-
//
|
|
531
|
+
// Use sheet_to_json with header:1 to get array-of-arrays
|
|
532
|
+
// This is the most reliable way to read all data
|
|
530
533
|
const rawData = XLSX.utils.sheet_to_json(worksheet, {
|
|
531
534
|
header: 1,
|
|
532
535
|
defval: null,
|
|
533
|
-
|
|
534
|
-
|
|
536
|
+
blankrows: true,
|
|
537
|
+
raw: true
|
|
535
538
|
});
|
|
536
539
|
if (rawData.length === 0) {
|
|
537
540
|
processedSheets++;
|
|
538
541
|
continue;
|
|
539
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);
|
|
549
|
+
}
|
|
550
|
+
else {
|
|
551
|
+
while (rawData[i].length < maxCols) {
|
|
552
|
+
rawData[i].push(null);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
540
556
|
// Validate headerRow is within bounds
|
|
541
557
|
if (headerRow >= rawData.length) {
|
|
542
558
|
console.warn(`[TabularDriver] headerRow ${headerRow} exceeds data length ${rawData.length}`);
|
|
543
559
|
processedSheets++;
|
|
544
560
|
continue;
|
|
545
561
|
}
|
|
546
|
-
//
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
if (rawData[i] && rawData[i].length > maxCols) {
|
|
552
|
-
maxCols = rawData[i].length;
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
// Build headers array with proper length
|
|
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];
|
|
556
567
|
const headers = [];
|
|
557
568
|
for (let j = 0; j < maxCols; j++) {
|
|
558
569
|
const h = headerRowData[j];
|
|
@@ -563,10 +574,12 @@ export class TabularDriver {
|
|
|
563
574
|
headers.push(String(h).trim());
|
|
564
575
|
}
|
|
565
576
|
}
|
|
566
|
-
//
|
|
577
|
+
// Count valid (non-empty) headers
|
|
567
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}`);
|
|
568
581
|
if (validHeaders.length === 0) {
|
|
569
|
-
console.warn(`[TabularDriver] No valid headers found at row ${headerRow}`);
|
|
582
|
+
console.warn(`[TabularDriver] No valid headers found at row ${headerRow} in sheet "${sheetName}"`);
|
|
570
583
|
processedSheets++;
|
|
571
584
|
continue;
|
|
572
585
|
}
|
|
@@ -575,22 +588,22 @@ export class TabularDriver {
|
|
|
575
588
|
for (let i = headerRow + 1; i < rawData.length; i++) {
|
|
576
589
|
const rowData = rawData[i];
|
|
577
590
|
// Skip completely empty rows
|
|
578
|
-
if (!rowData
|
|
591
|
+
if (!rowData)
|
|
579
592
|
continue;
|
|
580
|
-
}
|
|
581
|
-
// Skip rows where all cells are null/undefined/empty
|
|
582
593
|
const hasContent = rowData.some((cell) => cell !== null && cell !== undefined && String(cell).trim() !== '');
|
|
583
|
-
if (!hasContent)
|
|
594
|
+
if (!hasContent)
|
|
584
595
|
continue;
|
|
585
|
-
}
|
|
586
596
|
const row = {};
|
|
587
597
|
for (let j = 0; j < headers.length; j++) {
|
|
588
|
-
|
|
589
|
-
const cellValue = j < rowData.length ? rowData[j] : null;
|
|
590
|
-
row[header] = cellValue;
|
|
598
|
+
row[headers[j]] = j < rowData.length ? rowData[j] : null;
|
|
591
599
|
}
|
|
592
600
|
rows.push(row);
|
|
593
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
|
+
}
|
|
594
607
|
if (rows.length > 0) {
|
|
595
608
|
sheets[sheetName] = new DataFrame(rows);
|
|
596
609
|
}
|
|
@@ -646,20 +646,23 @@ export class TabularDriver {
|
|
|
646
646
|
}
|
|
647
647
|
|
|
648
648
|
const range = XLSX.utils.decode_range(ref);
|
|
649
|
-
const
|
|
650
|
-
const
|
|
649
|
+
const startRow = range.s.r;
|
|
650
|
+
const endRow = range.e.r;
|
|
651
|
+
const startCol = range.s.c;
|
|
652
|
+
const endCol = range.e.c;
|
|
651
653
|
|
|
652
|
-
if (
|
|
654
|
+
if (endRow < startRow) {
|
|
653
655
|
processedSheets++;
|
|
654
656
|
continue;
|
|
655
657
|
}
|
|
656
658
|
|
|
657
|
-
//
|
|
659
|
+
// Use sheet_to_json with header:1 to get array-of-arrays
|
|
660
|
+
// This is the most reliable way to read all data
|
|
658
661
|
const rawData: any[][] = XLSX.utils.sheet_to_json(worksheet, {
|
|
659
662
|
header: 1,
|
|
660
663
|
defval: null,
|
|
661
|
-
|
|
662
|
-
|
|
664
|
+
blankrows: true,
|
|
665
|
+
raw: true
|
|
663
666
|
});
|
|
664
667
|
|
|
665
668
|
if (rawData.length === 0) {
|
|
@@ -667,6 +670,20 @@ export class TabularDriver {
|
|
|
667
670
|
continue;
|
|
668
671
|
}
|
|
669
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)));
|
|
675
|
+
|
|
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
|
+
}
|
|
686
|
+
|
|
670
687
|
// Validate headerRow is within bounds
|
|
671
688
|
if (headerRow >= rawData.length) {
|
|
672
689
|
console.warn(`[TabularDriver] headerRow ${headerRow} exceeds data length ${rawData.length}`);
|
|
@@ -674,18 +691,12 @@ export class TabularDriver {
|
|
|
674
691
|
continue;
|
|
675
692
|
}
|
|
676
693
|
|
|
677
|
-
//
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
// Determine the maximum number of columns across all rows
|
|
681
|
-
let maxCols = totalCols;
|
|
682
|
-
for (let i = headerRow; i < Math.min(rawData.length, headerRow + 100); i++) {
|
|
683
|
-
if (rawData[i] && rawData[i].length > maxCols) {
|
|
684
|
-
maxCols = rawData[i].length;
|
|
685
|
-
}
|
|
686
|
-
}
|
|
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]);
|
|
687
697
|
|
|
688
|
-
//
|
|
698
|
+
// Extract headers from the specified row
|
|
699
|
+
const headerRowData = rawData[headerRow];
|
|
689
700
|
const headers: string[] = [];
|
|
690
701
|
for (let j = 0; j < maxCols; j++) {
|
|
691
702
|
const h = headerRowData[j];
|
|
@@ -696,10 +707,13 @@ export class TabularDriver {
|
|
|
696
707
|
}
|
|
697
708
|
}
|
|
698
709
|
|
|
699
|
-
//
|
|
710
|
+
// Count valid (non-empty) headers
|
|
700
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
|
+
|
|
701
715
|
if (validHeaders.length === 0) {
|
|
702
|
-
console.warn(`[TabularDriver] No valid headers found at row ${headerRow}`);
|
|
716
|
+
console.warn(`[TabularDriver] No valid headers found at row ${headerRow} in sheet "${sheetName}"`);
|
|
703
717
|
processedSheets++;
|
|
704
718
|
continue;
|
|
705
719
|
}
|
|
@@ -710,27 +724,26 @@ export class TabularDriver {
|
|
|
710
724
|
const rowData = rawData[i];
|
|
711
725
|
|
|
712
726
|
// Skip completely empty rows
|
|
713
|
-
if (!rowData
|
|
714
|
-
continue;
|
|
715
|
-
}
|
|
727
|
+
if (!rowData) continue;
|
|
716
728
|
|
|
717
|
-
// Skip rows where all cells are null/undefined/empty
|
|
718
729
|
const hasContent = rowData.some((cell: any) =>
|
|
719
730
|
cell !== null && cell !== undefined && String(cell).trim() !== ''
|
|
720
731
|
);
|
|
721
|
-
if (!hasContent)
|
|
722
|
-
continue;
|
|
723
|
-
}
|
|
732
|
+
if (!hasContent) continue;
|
|
724
733
|
|
|
725
734
|
const row: Record<string, any> = {};
|
|
726
735
|
for (let j = 0; j < headers.length; j++) {
|
|
727
|
-
|
|
728
|
-
const cellValue = j < rowData.length ? rowData[j] : null;
|
|
729
|
-
row[header] = cellValue;
|
|
736
|
+
row[headers[j]] = j < rowData.length ? rowData[j] : null;
|
|
730
737
|
}
|
|
731
738
|
rows.push(row);
|
|
732
739
|
}
|
|
733
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
|
+
|
|
734
747
|
if (rows.length > 0) {
|
|
735
748
|
sheets[sheetName] = new DataFrame(rows);
|
|
736
749
|
}
|