Оказалось, что у нас есть общая процедура для установки значения ячейки вида:
procedure SetValue(aSheet: ExcelWorksheet; aRow, aCol: Integer; aValue: Variant)
begin
aSheet.Cells.Item[aRow, aCol].Value := aValue;
end;
это не с ошибкой, которую я упомянул. Если я изменю это на:
procedure SetValue(aSheet: ExcelWorksheet; aRow, aCol: Integer; aValue: Variant)
var
sValue: WideString;
begin
sValue:= aValue;
aSheet.Cells.Item[aRow, aCol].Value := sValue;
end;
Мне кажется, что Delphi 2009 делает что-то другое с вариантами (по крайней мере, чем D2006), что-то, что не нравится COM, если у кого-то нет лучшего объяснения? Как бы то ни было, я рад пока что обойти это решение.