Excel Table Empty Range E2E WARN
Generated 2026-07-01T13:06:09.617951+00:00. The XLSX fixture has real green Excel tables and blank red regions. Because upload currently fails on the deployed backend, this report also creates a fallback MaybeSheet URL via write_new_sheet.
MaybeSheet URL: https://www.maybe.ai/docs/spreadsheets/d/6a4510b79ddc9b7553ad0f88?gid=0
XLSX fixture: /Users/dengwei/work/ai/maybeai-uni/mcp/maybeai-sheet-cli/docs/superpowers/reports/e2e-artifacts/openpyxl-multi-table-empty-range-20260701-130447.xlsx
Payload archive: /Users/dengwei/work/ai/maybeai-uni/mcp/maybeai-sheet-cli/docs/superpowers/reports/e2e-artifacts/e2e-payloads-20260701-130556.json
Visual Fixture
B2:E8
J2:N5
B12:H18
Checks
| Check | Status | Evidence |
|---|---|---|
| Fallback MaybeSheet URL created | PASS | https://www.maybe.ai/docs/spreadsheets/d/6a4510b79ddc9b7553ad0f88?gid=0 |
| Backend returned worksheet metadata for generated URL | PASS | /api/v1/excel/list_worksheets |
| Multi-table XLSX upload endpoint accepts fixture | WARN | Expected PASS for full backend tableParts E2E; current response is recorded below. |
| CLI filter excludes explicit empty candidates | PASS | A2:A8, B9:H10, F2:H8, J7:N10, A12:A18, I12:N18 |
| CLI default resolver avoids red empty ranges when metadata is available | PASS | {"table_id": "1", "worksheet_name": "Layout", "range_address": null, "metadata": {}} |
Resolved CLI View
[ "B2:E8", "J2:N5", "B12:H18" ]
[ "A2:A8", "B9:H10", "F2:H8", "J7:N10", "A12:A18", "I12:N18" ]
[]
[]
{
"table_id": "1",
"worksheet_name": "Layout",
"range_address": null,
"metadata": {}
}Backend Calls
upload multi-table XLSX fixture FAIL
POST /api/v1/excel/upload
Request
{
"file": "openpyxl-multi-table-empty-range-20260701-130447.xlsx"
}Response
{
"detail": "Failed to upload Excel file: 'dict' object has no attribute 'status_code'"
}create fallback MaybeSheet URL PASS
POST /api/v1/excel/write_new_sheet
Request
{
"filename": "empty-range-e2e-20260701-130556.xlsx",
"sheet_name": "Layout",
"data": [
{
"block": "NorthOrders",
"cell_range": "B2:E8",
"kind": "green",
"order_id": "N-001",
"region": "north",
"amount": 120,
"status": "open"
},
{
"block": "EastReturns",
"cell_range": "J2:N5",
"kind": "green",
"return_id": "R-001",
"sku": "SKU-7",
"qty": 1,
"reason": "damaged",
"approved": true
},
{
"block": "SouthPipeline",
"cell_range": "B12:H18",
"kind": "green",
"deal_id": "D-001",
"owner": "Ada",
"stage": "qualify",
"value": 1000,
"probability": 0.25
},
{
"block": "RedEmptyRanges",
"cell_range": "A2:A8, B9:H10, F2:H8, J7:N10, A12:A18, I12:N18",
"kind": "red-empty",
"note": "These ranges are intentionally blank in the XLSX fixture and should never be selected as tables."
}
]
}Response
{
"success": true,
"spreadsheet_url": "https://www.maybe.ai/docs/spreadsheets/d/6a4510b79ddc9b7553ad0f88?gid=0",
"spreadsheet_id": "6a4510b79ddc9b7553ad0f88",
"rows_created": 4,
"columns_created": 7,
"shape": "(4, 7)",
"message": "Created spreadsheet with 4 rows and 7 columns"
}raw worksheet metadata for generated URL PASS
POST /api/v1/excel/list_worksheets
Request
{
"uri": "https://www.maybe.ai/docs/spreadsheets/d/6a4510b79ddc9b7553ad0f88?gid=0",
"include_dimensions": true
}Response
{
"success": true,
"spreadsheet_id": "6a4510b79ddc9b7553ad0f88",
"spreadsheet_url": "https://www.maybe.ai/docs/spreadsheets/d/6a4510b79ddc9b7553ad0f88",
"spreadsheet_title": "empty-range-e2e-20260701-130556",
"document_id": "6a4510b79ddc9b7553ad0f88",
"engine": "excelize",
"worksheet_count": 1,
"total_worksheets": 1,
"worksheets": [
{
"title": "Layout",
"name": "Layout",
"worksheet_name": "Layout",
"sheet_name": "Layout",
"gid": 0,
"sheet_id": 0,
"index": 0,
"row_count": 5,
"column_count": 7,
"worksheet_url": "https://www.maybe.ai/docs/spreadsheets/d/6a4510b79ddc9b7553ad0f88?gid=0",
"data_engine": "excelize",
"style_engine": "excelize",
"sql_engine": "excelize",
"formula_engine": "excelize",
"source": {
"document_id": "6a4510b79ddc9b7553ad0f88",
"gid": 0,
"engine": "excelize",
"logical_gid": 0,
"logical_name": "Layout"
},
"source_info": {
"document_id": "6a4510b79ddc9b7553ad0f88",
"gid": 0,
"engine": "excelize",
"logical_gid": 0,
"logical_name": "Layout"
},
"dimensions": {
"rows": 5,
"columns": 7
}
}
],
"message": "Found 1 worksheets",
"source_info": {
"document_id": "6a4510b79ddc9b7553ad0f88",
"engine": "excelize",
"operation": "list_worksheets",
"registry_used": true,
"dimension_source": "upstream_enriched"
}
}raw workbook profile for generated URL PASS
POST /api/v1/excel/workbook_profile
Request
{
"document_id": "6a4510b79ddc9b7553ad0f88",
"uri": "https://www.maybe.ai/docs/spreadsheets/d/6a4510b79ddc9b7553ad0f88?gid=0",
"worksheet_name": "Layout"
}Response
{
"success": true,
"document_id": "6a4510b79ddc9b7553ad0f88",
"cache_status": "miss",
"profile": {
"summary": "这个 workbook 只有一张名为 “Layout” 的表,样本行显示字段有 amount、block、cell_range、kind、order_id、region、status。样例把若干逻辑块(如 NorthOrders、EastReturns、SouthPipeline、RedEmptyRanges)映射到具体的单元格范围,并带有类型标记(如 green、red-empty)、金额、订单号、区域和状态,但多行存在空值。由此可推断该表用于描述或检测工作表布局与数据块、追踪订单/退货/销售管道等业务区域以及定位“空范围”或异常区块,关键数据对象为 block 名称、cell_range、kind,以及用于分析的 amount、order_id、region、status。信息有限,具体业务流程和更多指标无法仅凭样本确定。",
"worksheets": [
{
"gid": 0,
"sheet_name": "Layout",
"data_engine": "excelize",
"sample_rows": [
[
"amount",
"block",
"cell_range",
"kind",
"order_id",
"region",
"status"
],
[
"120",
"NorthOrders",
"B2:E8",
"green",
"N-001",
"north",
"open"
],
[
"",
"EastReturns",
"J2:N5",
"green",
"",
"",
""
],
[
"",
"SouthPipeline",
"B12:H18",
"green",
"",
"",
""
],
[
"",
"RedEmptyRanges",
"A2:A8, B9:H10, F2:H8, J7:N10, A12:A18, I12:N18",
"red-empty",
"",
"",
""
]
]
}
],
"worksheet_signature": [
{
"gid": 0,
"sheet_name": "Layout"
}
],
"generated_at": "2026-07-01T13:06:09.613133+00:00"
}
}native table metadata endpoint for generated URL FAIL
POST /api/v1/excel/table/metadata
Request
{
"document_id": "6a4510b79ddc9b7553ad0f88",
"uri": "https://www.maybe.ai/docs/spreadsheets/d/6a4510b79ddc9b7553ad0f88?gid=0",
"engine": "excelize",
"worksheet_name": "Layout"
}Response
{
"detail": "Not Found"
}