Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

22 Октябрь 2019, 04:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Динамическая вставка данных из буфера в ячейки  (Прочитано 5327 раз)
0 Пользователей и 1 Гость смотрят эту тему.
And589
Форумчанин
***
Offline Offline

Сообщений: 92


« Стартовое сообщение: 16 Август 2014, 10:59 »

Объясните пожалуйста как динамически вставлять в ячейки значения их буфера обмена без собственных действий? Т.е. данные появляются в буфере обмена или в другом хранилище и сразу напрямую вставляются в определенную ячейку земеняя другие данные без вопросов. Для этого нужен код самого calc или определенная программа?
Например
1) Временное место хранения данных - буфер обмена
2) Приход данных в буфер - сначала A, потом Б, затем В
3) Место вставки - ячейки A1, A2, A3
4 Нужно, чтобы при появлении в буфере значения A, была автоматическая вставка в ячейку A1
5) При появлении в буфере значения A и Б, вставка в ячейку A1 и A2 соответственно A и Б, без запросов на вставку или замену ячейки и т.д.

Соответственно, если в буфере, например, 100 единиц данных, автоматическое заполнение ячеек от A1 до A100
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 799


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 16 Август 2014, 18:43 »

1) Временное место хранения данных - буфер обмена
А какой источник данных?
4 Нужно, чтобы при появлении в буфере значения A, была автоматическая вставка в ячейку A1
Просто свяжите ячейки или диапазоны в источнике данных и в текущем документе напрямую с автоматическим или ручным обновлением
5) При появлении в буфере значения A и Б, вставка в ячейку A1 и A2 соответственно A и Б, без запросов на вставку или замену ячейки и т.д.
А если составляя бухотчёт вы заскучаете и зайдёте развлечься Смеющийся на порносайт, главбух Шокирован получит отчёт с картинками?
Или я не понял ваш вопрос?
Записан

And589
Форумчанин
***
Offline Offline

Сообщений: 92


« Ответ #2: 16 Август 2014, 23:35 »

Цитата:
А какой источник данных?
AutoIt находит нужные значения в окне определенной программы, используются только цифры, зарезервировано например 100 переменных со значениями, если первое например 1000, второе 500, в буфере обмена первая переменная 1000 вторая 500 третья 0 по умолчанию т.д.
Цитата:
Просто свяжите ячейки или диапазоны в источнике данных и в текущем документе напрямую с автоматическим или ручным обновлением
Нет опыта использования механизма, который это делает, где связывать и как напрямую автоматически или вручную обновлять?
Цитата:
А если составляя бухотчёт вы заскучаете и зайдёте развлечься Смеющийся на порносайт, главбух Шокирован получит отчёт с картинками?
Или я не понял ваш вопрос?
Если подругому описать то, примерно так
1) Использование AutoIt, заполняющего например 100 ячеек calc своими 100 переменными со значениями, которые берет из окна другой открытой программы
2) Автоматическое/не активное/постоянное заполнение столбца из 100 ячеек данными, где calc не спрашивает вставить, как вставить, заменить или что-то еще

Т.е. каким образом осуществляется подобное постоянное подключение ячеек к чему-либо (буферу обмена например), т.е. условно в буфере

VAR1 = 1000
VAR2 = 500
VAR3 = 0
...
VAR100 = 0

Соответственно в столбце calc автоматически
A1 имеет 1000
A2 имеет  500
A3 имеет  0
...
A100 имеет  0

Нужно, чтобы файл calc с настроенным подключением был запущен и если в буфере есть переменная с нужным именем и условием например CALCVAR1 > 0, значение переходит в соответствующую ячейку и всегда автоматически заменяется без вопросов, если эта же переменная CALCVAR1 опять изменилась, заменяет значение, т.е. только анализ наличия в буфере данных для выполнения условия и заполнения ячейки. Как называется, включается и подключается к буферу обмена такой механизм из calc, если он есть в calc.
« Последнее редактирование: 16 Август 2014, 23:39 от And589 » Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 799


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #3: 17 Август 2014, 01:30 »

AutoIt находит нужные значения в окне определенной программы
Про AutoIt ничего не знаю, на компьютерах MAC она не работает.
Один из моих документов связан с интернет-сайтом, на сайте есть много всего и среди прочего таблица курсов валют. Когда я открываю документ в Офисе, диалоговое окно спрашивает(можно сделать без вопроса) хочу ли я обновить связи(данные), если да, то Офис в фоне(без браузера) подключается к сайту и копирует в документ только нужную таблицу. Очень удобно, но не все сайты для этого подходят.
Если источник данных интернет-сайт или файл на вашем компе, то наверно смогу помочь, если данные генерирует какая-то программа, то скорей всего не смогу.
Записан

Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #4: 17 Август 2014, 09:55 »

Т.е. данные появляются в буфере обмена или в другом хранилище
Использовать не буфер обмена, а промежуточный файл.
Записан
And589
Форумчанин
***
Offline Offline

Сообщений: 92


« Ответ #5: 17 Август 2014, 10:06 »

Цитата:
Если источник данных интернет-сайт или файл на вашем компе, то наверно смогу помочь, если данные генерирует какая-то программа, то скорей всего не смогу.
AutoIt подсчитывает в окне другой программы, нужны
1) Данные в буфере, только 100 переменных, все вначале 0 0 0 0 0
2) Допустим все разом постоянно заполняют 100 ячеек в открытом calc файле, с любыми значениями переменных, в т.ч. 0
3) Если буфер обмена изменился и теперь 1000 500 700 0 0 0 ... 0, тогда они все заполняют 100 ячеек, A1 имеет 1000, A2 имеет 500, A3 имеет 700, A4 имеет 0, A5 имеет 0 и т.д.
4) Все операции без вопросов на вставку или замену ячеек, соответственно, если документ открыт и буфер обмена имеет нужную для документа структуру данных
CALCVAR1 = любое значение
...
CALCVAR100 = любое значение
Он заполняет все ячейки в этом открытом calc файле

Т.е. нужно постоянное взятие данных из буфера обмена в таблицу calc при соответствии условий calc для структуры данных в буфере. Даже если пользователь не участвует в этом, условие нужно, если открыт документ, но нет сбора данных Autoit, чтобы неверные данные из буфера не вставлялись.

Цитата:
Использовать не буфер обмена, а промежуточный файл.
1) Это специальной файл определенной программы, или любой текстовый файл?
2) Он хранится на диске, или временный?

Допустим, данные появляются только в буфере обмена. Хотелось бы без использования дополнительных файлов, использовать только условие для буфера обмена.
Потому, что и так 2 условия - если открыт определенный документ calc, если буфер данных соответствует условию, изменяет AutoIt буфер обмена или нет, не важно.
« Последнее редактирование: 17 Август 2014, 10:19 от And589 » Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #6: 17 Август 2014, 10:41 »

1) Это специальной файл определенной программы, или любой текстовый файл?
2) Он хранится на диске, или временный?
Файл может быть любым, простым текстовым (типа CSV) или каким пожелаете, главное, чтобы AutoIt мог в него писать ваши данные так, как вам нужно.
А уж Calc прочитает их, если будет знать как вы (точнее, AutoIt) их в файле расположили.

Что делать с файлом, это вам решать: можете накапливать данные, можете файл обновлять каждый раз, можете каждый раз создавать новый файл - можете делать все, что угодно.

Если не нравится файл на диске, можете создать файл в оперативной памяти, создав виртуальный жесткий диск.

Вариантов немеряно.
Записан
And589
Форумчанин
***
Offline Offline

Сообщений: 92


« Ответ #7: 17 Август 2014, 14:14 »

Спасибо, но как заходя в calc показать ячейкам считывать постоянно и обновлять данные из файла? Нужна определенная функция = Поиск(C:\File) или что-то другое?
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 799


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #8: 17 Август 2014, 14:22 »

Спасибо, но как заходя в calc показать ячейкам считывать постоянно и обновлять данные из файла? Нужна определенная функция = Поиск(C:\File) или что-то другое?
Посмотрите мой ответ http://forumooo.ru/index.php/topic,4367.msg26765.html#msg26765
Записан

Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #9: 17 Август 2014, 15:04 »

Спасибо, но как заходя в calc показать ячейкам считывать постоянно и обновлять данные из файла? Нужна определенная функция = Поиск(C:\File) или что-то другое?
Проще всего написать простенький макрос для Calc'a, который с нужной периодичностью (хоть 100 раз в секунду) может проверять этот промежуточный файл, и, если, например, файл изменился (поменялось время создания файла, например), читать из него нужные данные, и вставлять в нужное место таблицы Calc'a.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!