Как ускорить форматирование Excel из Delphi? - PullRequest
0 голосов
/ 06 октября 2019

У меня есть приложение Delphi (Delphi 2009), которое использует команды Excel_TLB для записи в файл Excel. Мне нужно не только записывать данные в ячейки, но и назначать для них индивидуальный формат. Это делается для каждой ячейки, и типичный код для одной ячейки:

    FWS.Cells.Item[CurrLine, 4].Value2:='some data';
    FWS.Cells.Item[CurrLine, 4].Font.Name:='Times New Roman';
    FWS.Cells.Item[CurrLine, 4].Font.Size:=9;
    FWS.Cells.Item[CurrLine, 4].Font.Bold:=True;
    FWS.Cells.Item[CurrLine, 4].Font.Italic:=True;
    FWS.Cells.Item[CurrLine, 4].HorizontalAlignment:=xlHAlignLeft;

У меня приблизительно 6000 * 5 ячеек, и такая запись и форматирование занимает до 1 минуты времени. Это много времени. Запись данных сама по себе очень быстрая, но форматирование занимает большую часть времени. Я знаю, что присвоение форматов целым регионам делает вещи быстрее, но это не вариант для меня. Мои регионы очень сложные и не в одной массе.

Есть ли в Excel варианты отключить некоторую обработку во время форматирования, чтобы ускорить форматирование? Я делаю всю работу в фоновом / невидимом состоянии, затем сохраняю файл на диск и затем открываю его с помощью ShellExecute.

...