powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вывести данные из курсора в Exel
5 сообщений из 5, страница 1 из 1
Вывести данные из курсора в Exel
    #39401389
Omarr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть курсор с полями f1 типа character, и полем f2 с типом memo. Как данные из курсора сохранить в xlsx?

Делаю так, но в xls файле оказывается только первая колонка

Код: sql
1.
2.
select cur1
copy to otchet.xls type XL5
...
Рейтинг: 0 / 0
Вывести данные из курсора в Exel
    #39401636
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Omarr,
а зачем плодить посты, тем более, что концовка предыдущего и начало нового тематически весьма схожи

Я в прошлом имел ввиду, что мелкомягкие давно прекратили поддержку лисы, а xlsx относительно современный формат
Оно конечно дело вкуса, и можно поэксперементировать, но просто навига тебе в твоем случае лезть во все эти дебри и конвертировать туда-сюда
Ответь себе на два вопроса:
У тебя на твоей оси твой xlsx нормально открывается под экселем какой-то там версии и сборки?
На твоей оси лиса тоже "фурычит" неважно какой версии и сборки?

Если да тогда oExel=CREATEOBJECT("Excel.Application") -абсолютный аналог того что ты просто запустил экземпляр экселя зарегистрированного в твоей системе просто ты его еще не видишь, НО!!!! у тебя еще под лисой есть ссылка на него -oExel
oExel.Workbooks.Open(GETFILE()) -открываешь свой xlsx
А раз у тебя есть ссылка на объект- ты можешь "прочитаь" значения дочерних объектов, как хочешь и какие хочешь, а также записывать что хочешь и куда хочешь. итого далжно получиться примероно
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
CREATE CURSOR test ( world c(10),translation M) 
oExel=CREATEOBJECT("Excel.Application")
oExel.Workbooks.Open(GETFILE())

FOR i=2 TO 58&&сколько у тебя там строк,без 1й -заголовка
   INSERT INTO test(world,translation)value(oExel.Cells(i,1).Text,oExel.Cells(i,2).Text)
NEXT  

****как то обрабатываем курсор


nSheetsCount = oExel.ActiveWorkbook.Sheets.count
oExel.ActiveWorkbook.Sheets.Add(NULL,oExel.ActiveWorkbook.Sheets(nSheetsCount),1)

SELECT test
GO top
i=2
SCAN
   oExel.ActiveWorkbook.Sheets(nSheetsCount+1).Cells(i,1).value=test.world
   oExel.ActiveWorkbook.Sheets(nSheetsCount+1).Cells(i,2).value=test.translation
   i=i+1
ENDSCAN

oExel.visible=.t.


Данный подход гораздо гибче, тк можешь "считывать" и другие свойства ячеек(цвета,шрифты и пр) а следовательно "брать не все а только нужное", вообще делать все на что твоей фантазии хватит

П.С. У экселя есть макросы, следовательно можно можно посмотреть с какими объектами что сделать чтобы получить желаемый результат и делать тоже из лисы- это в помощь твоей фантазии
...
Рейтинг: 0 / 0
Вывести данные из курсора в Exel
    #39401701
Omarr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rock-n-roll, все эти штучки я делаю лишь для того, чтобы упросить себе задачу и не вырезать перевод и вставлять в другое слово. А так из xlsx файла я в итоге получил уже БД в формате sqlite. Я приложение для андроид пишу. Не хотелось несколько дней тратить для вырезания и вставки переводов. Спасибо, вы мне очень помогли
...
Рейтинг: 0 / 0
Вывести данные из курсора в Exel
    #39425850
muse_9636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А чем плох банальный
Код: sql
1.
Export to c:\temp\12345.xls xl5

?
...
Рейтинг: 0 / 0
Вывести данные из курсора в Exel
    #39427077
bmvmon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курсор перегнать в массив и его передаешь в Excel через "@".
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вывести данные из курсора в Exel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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