![]() |
#15 |
Moderator
|
Скромно-забавный способ задания свойств
Цитата:
Сообщение от Владимир Максимов
Надо при формировании отчета в Excel добавить в сформированный файл некоторую служебную информацию: кто и когда создал отчет.
В Excel для этого можно воспользоваться пунктом меню: Файл - Свойства - закладка "Прочие" Код при этом получается до безобразия компактным - всё делается одной командой: X++: static void MVB_Excel_DocProperty_5(Args _args) { COMExcelDocument_RU excel; COM doc; COM app; str s; str Title = 'Наше Название'; str Subject = 'Наша ""рогатая"" Тема'; str Author = 'Наш Автор (МЫ)'; str Keywords = 'Наши Ключевые слова'; str Comments = 'Наши Заметки'; ; excel = new ComExcelDocument_RU(); excel.newFile('',true); doc = excel.getComDocument(); app = doc.Application(); s = strfmt('SUMMARY.INFO?("%1","%2","%3","%4","%5")', Title, Subject, Author, Keywords, Comments); app.ExecuteExcel4Macro(s); } Можно считать эту "назойливость", также как и ограниченность набора пятью полями, платой за компактность кода. Хотя, с другой стороны, не вижу в этом ничего плохого - пользователю может даже понравиться это финальное "одобрение", тем более, что он может добавить информацию и в другие поля (и вот для их сохранения ему уже придется нажать на OK). Теоретически существует еще команда "SUMMARY.INFO" (без "?"), предназначенная как раз для скрытого прописывания, но она почему-то не производит желаемого эффекта. Не знаю, почему. Возможно, это ограничение метода ExecuteExcel4Macro в свете современной борьбы с макровирусами (в самом Excel 4.0 10 лет назад всё работало хорошо ![]() Если кто заинтересуется (а там есть кое-что любопытное), то можно скачать: Excel 2000 Help File: Running Excel 4.0 Macros. |
|
Теги |
excel |
|
|