За последние 24 часа нас посетили 25715 программистов и 1726 роботов. Сейчас ищут 846 программистов ...

VBA <-> php

Тема в разделе "Вопросы от блондинок", создана пользователем AngryW, 24 май 2013.

  1. AngryW

    AngryW Активный пользователь

    С нами с:
    7 июн 2011
    Сообщения:
    53
    Симпатии:
    0
    допустим VBA выполняет какую-то процедуру,
    в конце работает стейтмент:
    FollowHyperlink "http://127.0.0.1/MyScript123.php",
    и дальше php доделывает какой-то кусок задачи

    ну, для иллюстрации
    допустим вводим в Excel данные,
    с которыми удобно работать именно в Excel
    полученный в результате диапазон данных VBA записывает в txt
    php читает этот txt
    и записывает его в MySQL

    а как сделать обратное:
    нажимаем на кнопку в браузере
    и выполняется процедура VBA?
     
  2. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Какие-то странные и не очевидные махинации, в попытке отстрелить себе обе ноги, честное слово.
    Кто же так убивается, то? Вы же так не убьетесь.
     
  3. AngryW

    AngryW Активный пользователь

    С нами с:
    7 июн 2011
    Сообщения:
    53
    Симпатии:
    0
    ну что ж тут странного, Ke1eth
    специально же привел простой пример
    получить данные через Excel - весь мир этим занимается
    обработать их с VBA - сам Бог велел
    иметь результат именно в MySQL - вполне достойное желание

    вот путь может показаться не очевидной махинацией
    - это результат местных условий

    но зато очевидно, что VBA шустро перекидывает данные в txt
    а php шустро запихивает их в MySQL

    опять же, вполне естественный вопрос:

    как,
    обработать данные из MySQL
    и перенести результат в Excel?
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Очевидно: php берёт данные в mysql, записывает в txt, vba читает файл, вставляет в ячейки.
    Вот только вызвать vba из php, наверное, не получится. Если только написать на vba что-то вроде сервера, который будет следить за изменениями в файле txt и вставлять в excel по мере поступления данных.. Не знаю, будет ли во время работы скрипта доступен граф. интерфейс.
    Ещё сам vba может подключаться к mysql.
     
  5. AngryW

    AngryW Активный пользователь

    С нами с:
    7 июн 2011
    Сообщения:
    53
    Симпатии:
    0
    ага, в том и дело!
    спасибо YSandro,
    я теперь понял, что это действительно не от того, что я просто не знаю какого-то элементарного действия

    ну, я думал, что нибудь типа
    VBA раз в пару секунд
    проверяет что-то вроде наличия или времени изменения файла
    и если да,
    то несколько минут начинает проверять чаще чем раз в пару секунд
    каждый раз хавая txt,
    когда он изменился

    десяток строчек кода

    Так Excel этой работы и не заметит

    Добавлено спустя 10 минут 7 секунд:
    да я вообще пытаюсь постепенно переползти с VBA
    на php и пр.
    поэтому и не хочу разбираться как VBA работает с MySQL
    ты ж писал, что я привязал себя к MS -
    вот пытаюсь отвязываться
     
  6. AngryW

    AngryW Активный пользователь

    С нами с:
    7 июн 2011
    Сообщения:
    53
    Симпатии:
    0
    это я неудачный пример привел с MySQL
    вопрос, "как вызвать VBA из браузера"
    свелся к взаимодействию VBA и MySQL
    от этого, вероятно, я и угодил под суровую критику Ke1eth

    лучше пример -
    как по ссылке в браузере
    открыть не страницу в вебе а, скажем, книгу Excel

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

    при этом Excel, с мелкими оговорками, совершенно не замечает работу кода
    ну и не видно никакого увеличения нагрузки на процессор

    на моем уровне это лучший способ
    но опять, наверное, стрельба по ногам
     
  7. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Думаю, всё ок, раз именно такая задача стоит. VBA работает, как сервер, который ждет поступления данных в буфер (в данном случае текстовый файл). То же самое с импортом дополнительным библиотек можно сделать на сокетах. Если не нужен автоматический сбор данных, можно вызывать импортер кнопкой.
    А вот ещё вариант: из PHP генерировать xls (или xml) файлы попроще, а из excel-я уже собирать данные из этого файла в более сложный открытый документ.
     
  8. AngryW

    AngryW Активный пользователь

    С нами с:
    7 июн 2011
    Сообщения:
    53
    Симпатии:
    0
    YSandro, спасибо еще раз! Sorry, не смог написать сразу - лютый цейтнот.
    (хотя прочел сразу)

    понял
    это классно!

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