Опции листа при создании отчета в Excel
Модераторы: m0p3e, edward_K, Модераторы
Опции листа при создании отчета в Excel
Добрый день.
Есть такая задача - выводить отчет в Excel, причем так чтобы данные располагались на разных листах (их количество меняется в зависимости от данных) и каждый лист был подписан в соответствии с данными.
Главный вопрос - как быть с листами...
Может есть специальные функции? Или надо использовать что-то типа function OleCreate? Как потом указать опции листа?
Заранее спасибо!
Есть такая задача - выводить отчет в Excel, причем так чтобы данные располагались на разных листах (их количество меняется в зависимости от данных) и каждый лист был подписан в соответствии с данными.
Главный вопрос - как быть с листами...
Может есть специальные функции? Или надо использовать что-то типа function OleCreate? Как потом указать опции листа?
Заранее спасибо!
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
в теории можно побороть и slk - тока уж лучше в Excel сразу вывести как хочется , в том числе и присоединенкой.
так делаем шаблон в excel , с макросом запускающимся при открытии Excel, подкладываем его в Startup Excel. В сием макросе анализируем открытие книги и в зависимости от имени делаем то или иное - делал так лет 5 назад. Но проще и лучше уж сразу гнать в Excel.
так делаем шаблон в excel , с макросом запускающимся при открытии Excel, подкладываем его в Startup Excel. В сием макросе анализируем открытие книги и в зависимости от имени делаем то или иное - делал так лет 5 назад. Но проще и лучше уж сразу гнать в Excel.
Спасибо!!! Принцип понятен
А не могли бы Вы выслать данную документацию - Excel.doc
Потому что вопросы то скорее всего еще возникнут...
00000011@mail.ru
А не могли бы Вы выслать данную документацию - Excel.doc
Потому что вопросы то скорее всего еще возникнут...
00000011@mail.ru
Возник еще вопрос.
Есть определенный формат листа (ширина столбцов, заголовки)
Можно этот формат как-то скопировать?
Если использовать xlcopytobuff а потом вставлять
то ширина столбцов не копируется.
может можно создать лист на основе другого листа?
или подскажите функцию (с описанием параметров) которая позволяет настраивать ширину столбцов.
Есть определенный формат листа (ширина столбцов, заголовки)
Можно этот формат как-то скопировать?
Если использовать xlcopytobuff а потом вставлять
то ширина столбцов не копируется.
может можно создать лист на основе другого листа?
или подскажите функцию (с описанием параметров) которая позволяет настраивать ширину столбцов.
xlSetColumnWidth
Function xlSetColumnWidth(Size : word; RawU : longint; ColL : longint; RawD : longint; ColR : longint) : boolean;
Установить в заданном диапазоне активного листа ширину колонок в значение Size
Возвращает результат операции.
RawU : longint; ColL : longint; RawD : longint; ColR : longint
координаты диапазона
Size : word
ширина колонок
Function xlSetColumnWidth(Size : word; RawU : longint; ColL : longint; RawD : longint; ColR : longint) : boolean;
Установить в заданном диапазоне активного листа ширину колонок в значение Size
Возвращает результат операции.
RawU : longint; ColL : longint; RawD : longint; ColR : longint
координаты диапазона
Size : word
ширина колонок
[quote="Maverick"]Попробуй сделать этот лист активным, а потом удалить активный лист - должно с работать. тоже сталкивался с заморочками по имени листа - плюнул и пошел по пути работы с активными листами[/quote]
Я уже перебробовала по всякому
Подскажите как именно у Вас работает?
xlGetSheetsCount(cnt); // нужный лист последний
if xlDeleteSheet(cnt) then message('good');
if xlDeleteSheetbyname('Лист1') then message('good')
else message('bad');
if xlDeleteSheetbyname('Лист1') then message('good')
else message('bad');
Причем good он выдает все 3 раза...!
А лист все равно не удален оказывается
Я уже перебробовала по всякому
Подскажите как именно у Вас работает?
xlGetSheetsCount(cnt); // нужный лист последний
if xlDeleteSheet(cnt) then message('good');
if xlDeleteSheetbyname('Лист1') then message('good')
else message('bad');
if xlDeleteSheetbyname('Лист1') then message('good')
else message('bad');
Причем good он выдает все 3 раза...!
А лист все равно не удален оказывается