Динамическая вставка данных из буфера в ячейки

Автор And589, 16 августа 2014, 11:59

0 Пользователи и 1 гость просматривают эту тему.

And589

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

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

rami

Цитата: And589 от 16 августа 2014, 10:591) Временное место хранения данных - буфер обмена
А какой источник данных?
Цитата: And589 от 16 августа 2014, 10:594 Нужно, чтобы при появлении в буфере значения A, была автоматическая вставка в ячейку A1
Просто свяжите ячейки или диапазоны в источнике данных и в текущем документе напрямую с автоматическим или ручным обновлением
Цитата: And589 от 16 августа 2014, 10:595) При появлении в буфере значения A и Б, вставка в ячейку A1 и A2 соответственно A и Б, без запросов на вставку или замену ячейки и т.д.
А если составляя бухотчёт вы заскучаете и зайдёте развлечься ;D на порносайт, главбух :o получит отчёт с картинками?
Или я не понял ваш вопрос?

And589

#2
ЦитироватьА какой источник данных?
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.

rami

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

Hasim

Цитата: And589 от 16 августа 2014, 10:59Т.е. данные появляются в буфере обмена или в другом хранилище
Использовать не буфер обмена, а промежуточный файл.

And589

#5
ЦитироватьЕсли источник данных интернет-сайт или файл на вашем компе, то наверно смогу помочь, если данные генерирует какая-то программа, то скорей всего не смогу.
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 буфер обмена или нет, не важно.

Hasim

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

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

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

Вариантов немеряно.

And589

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

rami

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

Hasim

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