Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Excel и VFP: обмен данными. Помогите новичку. / 8 сообщений из 8, страница 1 из 1
15.06.2006, 13:39
    #33792808
nadK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel и VFP: обмен данными. Помогите новичку.
Здравствуйте!
Помогите, пожалуйста, советом. Стояла задача: перекинуть данные с определенной выборкой из Fox'а в Excel. Программно. Перекинула.
Теперь задача усложнилась: нужно, чтобы после корректировки пользователем этих данных в Excel'e, при желании пользователя эти изменения вносились в Fox-овскую таблицу (в исходник, то бишь...)
Чего-то не знаю, с какой стороны и подступиться.
Может, кто сталкивался...
Поделитесь, пожалуйста, идеями...
Заранее спасибо.
...
Рейтинг: 0 / 0
15.06.2006, 13:54
    #33792879
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel и VFP: обмен данными. Помогите новичку.
Ну так открой этот екселовский документ и запомни его как DBF. После чего делай с дбфкой что пожелаешь. Или аналогично как заполнял так и читай значения ячеек и запихивай их одратно в таблицу
...
Рейтинг: 0 / 0
15.06.2006, 14:23
    #33792995
-)
-)
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel и VFP: обмен данными. Помогите новичку.
Если ты разобралась, как программно заносить в Excel из Foxa, то и обратно - не составит большого труда. Т.е., теперь Fox будет выступать в роли сервера, а Excel в роли клиента.
Конкретный код можешь найти на - http://forum.foxclub.ru если там воспользуешься поиском по слову - “Excel”.
...
Рейтинг: 0 / 0
16.06.2006, 23:05
    #33797026
nadK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel и VFP: обмен данными. Помогите новичку.
Большое спасибо за отзывы. Правда:

1)DBF-кой сохранить не удастся, т.к. у таблицы в Excel'е еще есть шапка и что-то типа "итого", которые мешают нормальному сохранению книги в виде *.dbf.

2) конкретный код на http://forum.foxclub.ru не нашла, хотя соглашусь, что, возможно, плохо искала (поиск там уж как-то сильно нерационально организован)

Спасибо.
...
Рейтинг: 0 / 0
17.06.2006, 03:17
    #33797107
-)
-)
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel и VFP: обмен данными. Помогите новичку.
Один из вариантов решения переноса данных из Excel в таблицу VFP.
Для этого необходимо создать com-сервер в среде VFP, а поэтому проделать следующее:
1. Создать новый проект VFP (допустим его имя будет - expexc.pjx)
2. В этом проекте создать класс, на основании которого будет построен COM-сервер.
3. В данный класс добавить свойства через которые данные из Excel будут заносится в таблицу VFP.
4. В этом классе должен быть метод, который выполняет добавление строки в таблицу VFP.

К примеру, если нужно перенести данные из 3-х ячеек Excel (A1, B1, C1), то в классе (назовем его - clCarrying) должно быть определено 3 свойства: sv_a, sv_b, sv_c. И так же в классе создаем метод (назовем его danizexc)
В этом методе как раз и находится код, который вносит данные в таблицу - VFP
Код: plaintext
1.
2.
INSERT INTO <имя таблицы>(<pole_a>, < pole_b>, < pole_c>);
          VALUES(This.sv_a, This.sv_b, This.sv_c)
5. После «утряски» со всеми необходимыми свойствами и методами, на основании данного класса в среде VFP создаем com-сервер.
Для этого выбираем пункты меню Class-> Class Info и в диалоговом окне Class Info устанавливаем флажок OLE Public (это означает, что данный класс будет предоставлять свои свойства и методы как объект OLE)
6. Сохраняем класс.
7. На основании данного проекта, строим com-сервер нажав на кнопку Build в Project Manager. Он может быть следующих типов - COM server (exe), Single-threaded COM server (dll), Multi-threaded COM server (dll).
Если выбран тип - COM server (exe), то он будет выполняться в своем адресном пространстве памяти.
Если выбран тип - COM server (dll), то он будет использовать то же адресное пространство, что и вызывающее его приложение.
8. После построения, com-сервер (его имя будет expexc.exe или expexc.dll) нужно зарегистрировать:
Так, если - exe: expexc.exe /regserver или так, если - dll: regsvr32 expexc.dll

Все, тепер можно использовать функционал данного com-сервера другими приложениями.

Переходим к Excel.
На рабочем листе располагаем кнопку, по нажатию на которую, данные из ячеек
A1, B1, C1 будут попадать в таблицу – VFP.
В обработчике события - CommandButton1_Click() вызываем процедуру (допустим ее имя - PerenosInFox), которая как раз и будет использовать созданный в среде VFP COM-сервер.

Ее код такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Sub PerenosInFox()

  ' Создаем объект ox класса clCarrying расположенного в expexc.dll

    Dim ox As Object
    Set ox = CreateObject("expexc.clCarrying")

  ' Свойствам объекта ox присваиваем значения ячеек - A1, B1, C1   

    ox.sv_a = Worksheets("Лист1").Range("A1").Value
    ox.sv_b = Worksheets("Лист1").Range("B1").Value
    ox.sv_c = Worksheets("Лист1").Range("C1").Value

  ' Выполняем метод danizexc() объекта ox, который добавит данные из этих ячеек в строку таблицы VFP  

    ox.danizexc

    MsgBox ("Данные успешно перенесены в таблицу - VFP !")
End Sub
Ну, я думаю, что сама идея должна быть понятна. А если нужно переносить данные не только 3-х ячеек, то в процедуре - PerenosInFox() необходимо организовать сканирование нужного интервала, но все это уже - VBA.
...
Рейтинг: 0 / 0
19.06.2006, 06:18
    #33798535
nadK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel и VFP: обмен данными. Помогите новичку.
Большое спасибо за столь подробное объяснение!
...
Рейтинг: 0 / 0
15.07.2006, 21:25
    #33855966
nadK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel и VFP: обмен данными. Помогите новичку.
Спасибо тем, кто помог мне в прошлый раз. Может, кто и сейчас подскажет...
Задача усложнилась. Данные в Fox нужно переносить из большого количества однотипных excel-файлов. Что-то как-то совсем не хочется в каждом из них макрос прописывать. Как быть?
Заранее спасибо.
...
Рейтинг: 0 / 0
19.07.2006, 09:52
    #33862860
Andrey Ts
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel и VFP: обмен данными. Помогите новичку.
может, источник ODBC на Excel файл спасет вас?
(с последующим коннектом SQLConnect("xlsODBC")
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Excel и VFP: обмен данными. Помогите новичку. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]