CftClub.ru
Клуб специалистов ЦФТ-Банк

Отчет в excel

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Банковская отчетность (оперативная, обязательная, Oracle Reports)
Предыдущая тема :: Следующая тема  
Автор Сообщение
Programmer
Участник - экстремал


Вступление в Клуб: 26.11.2014
СообщениеСр Июн 28, 2017 15:02   Отчет в excel Ответить с цитатой
Полезность: Нет оценки
Добрый день, уважаемые форумчане!
Подскажите пожалуйста, как исправить следующую ошибку.
Разрабатываю отчет с использованием Библиотеки "Функции для работы с Excel\Calc через клиент скрипт"
Делаю следующее, с помощью процедуры "excel.Copy_Text(a1, b1, a2, b2)" копирую некую область из создаваемого файла. Дальше при помощи процедуры "excel.write(c1, c2)" вношу записи в ячейки. В конце работы, вызываю процедуру "excel.Paste(a1, b1, a2, b2)", что бы вставить всю область которая была скопирована ранее процедурой "excel.Copy(a1, b1, a2, b2)". Все работает отлично.
Но вот одно но, если между вызовами "excel.write(c1, c2)" вставить к примеру вызов процедуры "excel.Merge(z1, 1, z2,4)" - это объединения ячеек. То в конце как вы помните, вызывается процедуру "excel.Paste(a1, b1, a2, b2)" которая должна вставить, все что было скопировано процедурой "excel.Copy_Text(a1, b1, a2, b2)". Чего собственно не происходит, остается пустое пространство размером с то, которое должно было заполниться содержимым.
Может кто то сталкивался с подобного рода проблемой или еще лучше знает ее решение?
Заранее благодарю за ответы.
Admin
Site Admin


Вступление в Клуб: 09.06.2007
СообщениеСр Июн 28, 2017 15:59    Ответить с цитатой
Полезность: Нет оценки
Это особенность работы в Excel.

Если Вы вручную проделаете в Excel то же самое, то при форматировании ячеек скопированный буфер обмена очистится, и вставка не сработает.

Меняйте последовательность действий - сначала вставка, затем формат.


Последний раз редактировалось: Admin (Сб Апр 27, 2019 09:23), всего редактировалось 1 раз
Programmer
Участник - экстремал


Вступление в Клуб: 26.11.2014
СообщениеСр Июн 28, 2017 16:11    Ответить с цитатой
Полезность: Нет оценки
Немного поясню, к посту.
Последовательность действия следующая.
excel.Copy_Text(a1, b1, a2, b2) - это разные ячейки
excel.write(c1, c2) - это разные ячейки
excel.write(c1, c2) - это разные ячейки
excel.Merge(z1, 1, z2,4) - это разные ячейки
excel.write(c1, c2) - это разные ячейки
excel.Paste(a1, b1, a2, b2) - это разные ячейки

Получается так, что все заполняется последовательно. И соответственно возможности поменять последовательность действий ее нет.
Может есть еще какие то предложения?
Programmer
Участник - экстремал


Вступление в Клуб: 26.11.2014
СообщениеСр Июн 28, 2017 16:19    Ответить с цитатой
Полезность: 1
Admin пишет:
Это особенность работы в Excel.

Если Вы вручную проделаете в Excel то же самое, то при форматировании ячеек скопированный буфер обмена очистится, и вставка не сработает.

Меняйте последовательность действий - сначала вставка, затем формат.

Спасибо большое. Но ваш пост, подсказал мне другое решение.
А оно заключается в том что я сохраняю, координаты той области которую буду вставлять в последующем. И при каждой вставки. т.е. вызове операции "excel.Paste(a1, b1, a2, b2)", предшествует операция "excel.Copy_Text(a1, b1, a2, b2)". Благодарю за помощь.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Банковская отчетность (оперативная, обязательная, Oracle Reports) Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru