mirror of
https://github.com/sbroenne/mcp-server-excel.git
synced 2026-09-19 07:53:08 +08:00
0bb29be3be
* Fix #279: Power Query lifecycle cleanup for Data Model connections BREAKING CHANGES: - Unload now removes Data Model connections (not just worksheet tables) - Delete now removes Data Model connections (prevents orphan connections) IMPROVEMENTS: - List correctly reports IsConnectionOnly for Data Model-only queries - Update uses connection.Refresh() fallback for Data Model-only queries (no worksheet table to refresh) NEW TESTS: - PowerQueryCommandsTests.LifecycleCleanup.cs: 8 tests for Issue #279 - PowerQueryCommandsTests.UpdateErrors.cs: 3 tests for error handling - DataModelComApiBehaviorTests.cs: 11 diagnostic scenarios - PowerQueryComApiBehaviorTests.cs: 15 diagnostic scenarios DOCUMENTATION: - docs/COM-API-BEHAVIOR-FINDINGS.md: Empirical COM API behavior findings - excel_powerquery.md: Updated prompt docs for Data Model cleanup DELETED: - PowerQueryCommandsTests.ErrorQueries.cs: Referenced non-existent local file All 53 PowerQuery and DataModel tests pass. * fix: Use locale-aware format translation instead of global Excel settings - Renamed DateFormatTranslator to NumberFormatTranslator - Extended translator to handle decimal/thousands separators (. and ,) - Removed global UseSystemSeparators/DecimalSeparator/ThousandsSeparator settings from ExcelSession and ExcelBatch (these modified Excel app defaults) - Added IsEnglishNumberLocale property to detect US-style number separators - Format codes are now translated at point of use, not by changing app defaults - Updated all references from DateFormatter to FormatTranslator - Removed unused WithUSFormatSeparators helper from RangeCommands This approach translates US format codes (like $#,##0.00) to locale-specific codes (like $#.##0,00 on German Excel) without modifying Excel's global settings. Previous approach of changing Application.DecimalSeparator affected all workbooks in the Excel instance, which is not desirable. * feat: DAX formula locale handling for European locales (#281) - Add DaxFormulaTranslator to convert US comma separators to semicolons on European locales - Integrate translator in CreateMeasure and UpdateMeasure operations - Power Pivot uses system culture (CultureInfo.CurrentCulture), not Excel International settings - Preserve commas inside string literals and column references - Add 5 integration tests for DAX locale translation