Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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)". Чего собственно не происходит, остается пустое пространство размером с то, которое должно было заполниться содержимым.
Может кто то сталкивался с подобного рода проблемой или еще лучше знает ее решение?
Заранее благодарю за ответы. |
|
![](templates/subSilver/images/spacer.gif) |
Admin Site Admin
Вступление в Клуб: 09.06.2007
|
Ср Июн 28, 2017 15:59   |
|
Полезность: Нет оценки
|
Это особенность работы в Excel.
Если Вы вручную проделаете в Excel то же самое, то при форматировании ячеек скопированный буфер обмена очистится, и вставка не сработает.
Меняйте последовательность действий - сначала вставка, затем формат.
Последний раз редактировалось: Admin (Сб Апр 27, 2019 09:23), всего редактировалось 1 раз |
|
![](templates/subSilver/images/spacer.gif) |
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) - это разные ячейки
Получается так, что все заполняется последовательно. И соответственно возможности поменять последовательность действий ее нет.
Может есть еще какие то предложения? |
|
![](templates/subSilver/images/spacer.gif) |
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)". Благодарю за помощь. |
|
![](templates/subSilver/images/spacer.gif) |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|