Skip to content

Improve Go XLSX fidelity and publish benchmarks - #174

Merged
shps951023 merged 5 commits into
mainfrom
fix/go-xlsx-text-overflow-pagination
Sep 14, 2026
Merged

Improve Go XLSX fidelity and publish benchmarks#174
shps951023 merged 5 commits into
mainfrom
fix/go-xlsx-text-overflow-pagination

Conversation

@shps951023

@shps951023 shps951023 commented Sep 14, 2026

Copy link
Copy Markdown
Member

Summary

  • paginate overflowing single-column XLSX text horizontally
  • preserve physical XLSX row and column positions from OOXML references
  • skip worksheets with no physical rows while retaining layout-only sheets and an empty-workbook fallback page
  • render OOXML boolean cells as TRUE and FALSE
  • publish the complete Go issue XLSX benchmark report for all 24 tracked fixtures
  • add focused extraction and conversion-level regression tests

Validation

  • go test ./...
  • go vet ./...
  • go test -race ./...
  • classic XLSX suite: 191 cases, average 0.8436 initial baseline to 0.8522
  • classic09_long_text: 0.1840 at 1/12 pages to 0.8942 at 12/12 pages
  • classic11_sparse_rows: 0.6990 to 0.9996
  • classic12_sparse_columns: 0.6993 to 0.9995
  • classic30_mixed_empty_and_filled_sheets: 0.6834 to 0.9993
  • classic42_boolean_values: 0.9264 to 0.9869
  • issue XLSX suite: 24/24 conversions valid, no missing Microsoft 365 or LibreOffice references, average 0.4929
  • issue report compares up to three pages per case because two stress fixtures produce 3,781 and 2,860 candidate pages
  • report integrity: 290 links checked, zero missing; largest file 2.28 MB

Remaining Go parity work

XLSX number/date formats, styles, merged-cell layout, images and charts; DOCX tables and images; PPTX shapes and images; and advanced font fallback/shaping remain tracked in FEATURE_PARITY.md.

Summary by CodeRabbit

  • New Features

    • Improved XLSX-to-PDF conversion for sparse rows and columns, preserving blank gaps.
    • Added support for displaying boolean cell values as TRUE or FALSE.
    • Long single-column worksheet content now flows across multiple pages.
    • Custom page-size settings are applied consistently across worksheets.
  • Bug Fixes

    • Empty worksheets are excluded from generated PDFs.
    • XLSX documents without printable content now produce a correctly sized blank page.
  • Documentation

    • Updated Go feature-parity and validation records for XLSX rendering improvements.

@coderabbitai

coderabbitai Bot commented Sep 14, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: d3d6324d-d810-4ab9-a5f0-d059f54a78d0

📥 Commits

Reviewing files that changed from the base of the PR and between 25af927 and 414dd1d.

⛔ Files ignored due to path filters (290)
  • artifacts/go-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expense budget1_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Event budget1_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Expense report basic1_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Expense report basic1_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Expense report basic1_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Expense report basic1_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Expense report basic1_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Grocery list1_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Grocery list1_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Grocery list1_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Grocery list1_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Grocery list1_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p4_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Issue202609031340_p4_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/PO_anonymized_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Simple invoice1_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Simple invoice1_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Simple invoice1_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Simple invoice1_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue152_ClusteredNonZeroBarChart_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue152_ClusteredNonZeroBarChart_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue152_ClusteredNonZeroBarChart_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue152_ClusteredNonZeroBarChart_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_MergedCellAlignment_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_MergedCellAlignment_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_MergedCellAlignment_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_MergedCellAlignment_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_MergedCellAlignment_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_MergedCellAlignment_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_MergedCellAlignment_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_MergedCellAlignment_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_MergedCellAlignment_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_heatmap.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_minipdf.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_reference.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Academic Achievement Summary Table_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Academic Achievement Summary Table_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/AcademicAchievement_temp_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/AcademicAchievement_temp_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Business plan checklist with SWOT analysis1_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Event budget1_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Event budget1_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Event budget1_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Expense report basic1_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Grocery list1_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p4_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Simple invoice1_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/Weekly schedule planner1_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue152_ClusteredNonZeroBarChart_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_MergedCellAlignment_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_MergedCellAlignment_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p1_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p2_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
  • artifacts/go-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p3_go_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png is excluded by !**/*.png
📒 Files selected for processing (9)
  • .gitignore
  • FEATURE_PARITY.md
  • artifacts/go-benchmark/issue/xlsx/report/benchmark_coverage.json
  • artifacts/go-benchmark/issue/xlsx/report/comparison_manifest.json
  • artifacts/go-benchmark/issue/xlsx/report/comparison_report.json
  • artifacts/go-benchmark/issue/xlsx/report/comparison_report.md
  • minipdf-go/office.go
  • minipdf-go/office_test.go
  • minipdf-go/xlsx.go

📝 Walkthrough

Walkthrough

The Go XLSX converter now preserves sparse worksheet layout, formats boolean cells, skips empty worksheets, paginates long single-column text, and retains fallback pages. Tests, benchmark coverage, ignore rules, and feature-parity records were updated.

Changes

Go XLSX conversion

Layer / File(s) Summary
Worksheet structure and cell decoding
minipdf-go/xlsx.go, minipdf-go/office_test.go
Worksheet extraction preserves missing rows and columns. Boolean cells render as TRUE or FALSE.
Worksheet selection and pagination
minipdf-go/xlsx.go, minipdf-go/office_test.go
Empty worksheets are skipped. Empty workbooks retain a fallback page. Long single-column text is split across pages.
Text page rendering
minipdf-go/office.go
Text pages support no-wrap rendering. Character-per-line calculation uses a shared helper.
Benchmark evidence and parity records
.gitignore, FEATURE_PARITY.md, artifacts/go-benchmark/issue/xlsx/report/*
The repository tracks the Go benchmark report. The manifest and coverage report contain 24 XLSX cases. Feature-parity records document the implementation and validation progress.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Bug fix

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/go-xlsx-text-overflow-pagination

Comment @coderabbitai help to get the list of available commands.

@shps951023 shps951023 changed the title Fix Go XLSX long-text pagination Fix Go XLSX overflow and sparse layout pagination Sep 14, 2026
@shps951023 shps951023 changed the title Fix Go XLSX overflow and sparse layout pagination Improve Go XLSX pagination fidelity Sep 14, 2026
@shps951023 shps951023 changed the title Improve Go XLSX pagination fidelity Improve Go XLSX pagination and scalar fidelity Sep 14, 2026
@shps951023 shps951023 changed the title Improve Go XLSX pagination and scalar fidelity Improve Go XLSX fidelity and publish benchmarks Sep 14, 2026
@shps951023
shps951023 marked this pull request as ready for review September 14, 2026 12:31
Copilot AI lite review requested due to automatic review settings September 14, 2026 12:31
@shps951023
shps951023 merged commit 6216961 into main Sep 14, 2026
4 of 5 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved critical allocation-safety findings, a moderate rendering issue, and report nits remain.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Improves Go XLSX rendering fidelity and publishes complete benchmark results.

Changes:

  • Adds overflow pagination, sparse-position preservation, empty-sheet handling, and boolean formatting.
  • Adds focused regression tests and rendering updates.
  • Publishes benchmark reports and updates parity metadata.
File summaries
File Summary
minipdf-go/xlsx.go XLSX extraction and pagination changes. Two critical findings (3 votes each) concern unbounded row and column allocations before configured limits are applied.
minipdf-go/office.go Text overflow rendering updates. One moderate finding (3 votes) concerns explicit newlines being converted to spaces.
minipdf-go/office_test.go Regression coverage for XLSX behavior.
FEATURE_PARITY.md Updated parity status and benchmark history.
artifacts/go-benchmark/issue/xlsx/report/comparison_report.md Published benchmark report. Two nit findings (2 votes and 1 vote) concern emoji markers and incorrect list numbering.
artifacts/go-benchmark/issue/xlsx/report/comparison_manifest.json Benchmark case manifest.
artifacts/go-benchmark/issue/xlsx/report/benchmark_coverage.json Benchmark coverage results.
.gitignore Allows generated benchmark artifacts to be tracked.
Review details
  • Files reviewed: 6/299 changed files
  • Comments generated: 4
  • Review effort level: Lite

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread minipdf-go/xlsx.go
Comment on lines +215 to +216
for len(row)+1 < columnNumber {
row = append(row, "")
Comment thread minipdf-go/xlsx.go
Comment on lines +233 to +234
for len(lines)+1 < rowNumber {
lines = append(lines, "")
Comment thread minipdf-go/office.go
Comment on lines +155 to +159
if noWrap {
wrapped = append(wrapped, line)
} else {
wrapped = append(wrapped, wrapText(line, textCharactersPerLine(pageSize, margins))...)
}

## Summary

| # | Test Case | Valid | Text Sim | Visual Avg | Pages (M/R) | Overall |
|---|-----------|-------|----------|------------|-------------|--------|
| 1 | 🔴 Issue202609031340 | ❌ | 0.175 | 0.5866 | 3/4 | **0.4046** |
| 1 | 🔴 Academic Achievement Summary Table | ✅ | 0.3235 | 0.4218 | 9/2 | **0.3981** |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants