Не мучаемся, а препарируем
Еще один вариант с разделителями
X++:
str leftBrace;
str rightBrace;
str columnSeparator;
str rowSeparator;
str alternateArraySeparator;
str decimalSeparator;
COMVariant var;
#define.xlDecimalSeparator(0x00000003)
#define.xlLeftBrace(0x0000000C)
#define.xlRightBrace(0x0000000D)
#define.xlColumnSeparator(0x0000000E)
#define.xlRowSeparator(0x0000000F)
#define.xlAlternateArraySeparator(0x00000010)
;
...
var = xlApp.International(#xlDecimalSeparator);
if (var)
decimalSeparator = var.bStr();
else
decimalSeparator = ",";
var = xlApp.International(#xlLeftBrace);
if (var)
leftBrace = var.bStr();
else
leftBrace = "{";
var = xlApp.International(#xlRightBrace);
if (var)
rightBrace = var.bStr();
else
rightBrace = "}";
var = xlApp.International(#xlColumnSeparator);
if (var)
columnSeparator = var.bStr();
else
columnSeparator = ";";
var = xlApp.International(#xlRowSeparator);
if (var)
rowSeparator = var.bStr();
else
rowSeparator = ":";
var = xlApp.International(#xlAlternateArraySeparator);
if (var)
alternateArraySeparator = var.bStr();
else
alternateArraySeparator = "&";
if (columnSeparator == decimalSeparator)
columnSeparator = alternateArraySeparator;
if (rowSeparator == decimalSeparator)
rowSeparator = alternateArraySeparator;
rng.FormulaArray(
strfmt("=%1 1 %3 1 %4 2 %3 2 %4 3 %3 2 %4 4 %3 2 %4 5 %3 2 %4 6 %3 2 %4 7 %3 4 %4 8 %3 2 %4 9 %3 1 %4 10 %3 2%2",
leftBrace, rightBrace, columnSeparator, rowSeparator));
PS 2
Gustav.
А как это будет выглядеть на английской версии? Если все Ok, то исправлю выгрузку