Synthetic fixture only. Windows ACE/VBA execution is NOT verified.

Input: ado-sales-source.xlsx, Sales!A1:C7.
Headers: Customer, Date, Amount.
Rows: 6. Date values are strings; this example does not filter by date.
Audit: SourceRows=6; CustomerRows=6; AmountRows=6; GrandTotal=900000.

New unsaved output workbook, ADO_Result:
A1:B1 = Customer, Total
A2:B2 = Alpha, 200000
A3:B3 = Beta, 500000
A4:B4 = Gamma, 200000
D1:E6 contains audit labels and values for source count, non-null field counts, group count and grand total.
Expected group count = 3. Existing workbooks and worksheets must remain unchanged.

SQLite reference cases, NOT Office tests:
- Baseline: (Alpha,200000),(Beta,500000),(Gamma,200000).
- Compensated error: first Alpha amount +10000 and first Beta amount -10000; total remains 900000 but keyed groups are 210000,490000,200000 and must be rejected.
- First Amount replaced by NULL: audit 6,6,5,780000; reject.
- Empty input: audit 0,0,0,NULL; reject.

Additional manual Windows checks, not yet executed:
- Missing source, unsaved controller, source open in this Excel instance: reject before output.
- Missing provider or different cursor support: report stage without clearing existing sheets.
- Successful result: compare actual A2:B4 with validated groups; save output separately if wanted.
- Failure after own output creation: discard only the uncommitted new workbook; report cleanup failures.
- Originally disabled events/screen updating: restore their original values.
- Cleanup warning after commit: keep committed output; do not claim full cleanup.
- A pre-output rejection is not a test of cleanup after a partial write.
