Есть проиложения, написанные на Delphi? В данный моемент репорт осуществляется путем экспорта в Excel с использованием Excel2000.pas и вариантного типа.
Но прогресс не стоит на месте и требуется переход на Excel 2007.
Как в Delphi 2006 организовать экспорт данных в Excel 2007?
Здравствуйте, MishaMW, Вы писали:
MMW> Есть проиложения, написанные на Delphi? В данный моемент репорт осуществляется путем экспорта в Excel с использованием Excel2000.pas и вариантного типа. MMW> Но прогресс не стоит на месте и требуется переход на Excel 2007.
MMW> Как в Delphi 2006 организовать экспорт данных в Excel 2007?
Всё будет работать... Мы используем старые компоненты XLSReadWriteII , неохото под новые переделывать всё... Они вообще знают только про Офис 97. А на 2003 всё работает хорошо...
Здравствуйте, MishaMW, Вы писали:
MMW> Есть проиложения, написанные на Delphi? В данный моемент репорт осуществляется путем экспорта в Excel с использованием Excel2000.pas и вариантного типа. MMW> Но прогресс не стоит на месте и требуется переход на Excel 2007.
MMW> Как в Delphi 2006 организовать экспорт данных в Excel 2007?
Я вообще пользую конструкции типа
function CreateApp: Boolean;
begin
Result := True;
try
xlApp := CreateOleObject('Excel.Application');
except
Result := False;
end;
end;
...
procedure PrintExcel( ... );
if CreateApp then ...
И вообще не заморачиваюсь на тему, какая версия офиса стоит у конечного пользователя.
Здравствуйте, silentroach, Вы писали:
S>У меня в проекте код старый остался, в Висте на Excel 2007 все выгружается без проблем
Экспорт производится из SQL Server с использованием компонентов ADO.
На местах с установленным MS Office 2007 при передаче данных в Excel вылетает такая ошибка:
"Использован старый формат, либо библиотека имеет неверный тип"
Здравствуйте, MishaMW, Вы писали:
MMW>Экспорт производится из SQL Server с использованием компонентов ADO. MMW>На местах с установленным MS Office 2007 при передаче данных в Excel вылетает такая ошибка: MMW>"Использован старый формат, либо библиотека имеет неверный тип"
Здравствуйте, LuciferArh, Вы писали:
LA>Я вообще пользую конструкции типа LA>
LA>function CreateApp: Boolean;
LA>begin
LA> Result := True;
LA> try
LA> xlApp := CreateOleObject('Excel.Application');
LA> except
LA> Result := False;
LA> end;
LA>end;
LA>...
LA>procedure PrintExcel( ... );
LA> if CreateApp then ...
LA>
LA>И вообще не заморачиваюсь на тему, какая версия офиса стоит у конечного пользователя.
Таким образом, конечгно работает, но гораздо медленнее. А если учесть, что и отчеты формируются значительное время, то не хотелось бы использовать такой способ.
Здравствуйте, MishaMW, Вы писали:
MMW>Таким образом, конечгно работает, но гораздо медленнее. А если учесть, что и отчеты формируются значительное время, то не хотелось бы использовать такой способ.
Это да. Есть такой минус. Но я с ним мирюсь в силу универсальности решения. Можно, конечно, формировать отчет в другом потоке, чтобы основную программу не занимать. Но это уж на вкус и цвет...