On-line: PSP, гостей 4. Всего: 5 [подробнее..]
АвторСообщение



Пост N: 38
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 12.05.08 09:34. Заголовок: excel


Хотелось-бы узнать, есть-ли эффективный ( быстрый ) способ экспорта dbf -> xls? Реальный!


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 49 , стр: 1 2 3 All [только новые]





Пост N: 39
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 12.05.08 10:04. Заголовок: Уточняю. У моих ко..


Уточняю. У моих конкурентов - Delphi - берем примерно 10000 записей: 3-4 сек., у меня: 1.5 мин !!!!!!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 40
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 12.05.08 10:12. Заголовок: Читал другие фо..


Читал другие форумы- везде, что-то, нужно использовать кривое, чужое и т. п.. А у нас ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 41
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 12.05.08 10:34. Заголовок: Небожители - АУ !!..


Небожители - АУ !!!!!!!!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 441
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.05.08 10:38. Заголовок: Что хотим экспортиро..


Что хотим экспортировать, структура таблицы.
И каким способом делаем это сейчас?


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 42
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 12.05.08 10:48. Заголовок: Что-угодно ( прайс,..


Что-угодно ( прайс, база номенклатуры, накладные и т. д. и т.п. ). Пользуюсь :

oExcel := TOleAuto():New( "Excel.Application" )
if Ole2TxtError() != 'S_OK'
MsgStop('Excel is not available!', PROGRAM )
RETURN
endif
oExcel:Visible := .F.
oExcel:WorkBooks:Add()
oSheet := oExcel:Get( "ActiveSheet" )

Aeval( (cAlias)->( DBstruct(cAlias) ), { |e,i| oSheet:Cells( nCell, i ):Value := e[DBS_NAME] } )
do while !(cAlias)->( EoF() )
nCell++
aColumns := (cAlias)->( Scatter() )
aEval( aColumns, { |e,i| oSheet:Cells( nCell, i ):Value := e } )
(cAlias)->( DBskip() )
enddo

oBook := oExcel:Get("ActiveWorkBook")
oBook:Title := cAlias
oBook:Subject := cAlias
oBook:SaveAs(cFile)
oExcel:Quit()

из MiniGUI\SAMPLES\Applications\DBFview


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 442
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.05.08 11:07. Заголовок: Реализация OLE в Har..


Реализация OLE в Harbour не очень быстрая.

Если действительно нужна скорость выгрузки, можно использовать прямую запись в файл.
Естественно структура xls 2003 или 2007 сложная. Но в сети довольно много примеров генерации файлов biff 2.1 (до Excel 5.0).
Такой файл легко открывается всеми версиями Excel - от 97 до 2007.
К тому же такой способ можно использовать на компьютере без установленного MS Office.

Если же Excel установлен, то просто открываем такой файл и сохраняем в более современной версии.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 43
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 12.05.08 12:11. Заголовок: Но ведь это - не ..


Но ведь это - не метод. Вы мудрые где-тож - чего-тож уже надыбали поделитесь
А если без шуток - опять у нас нет решения на простые для других вопросы

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 443
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.05.08 12:35. Заголовок: valery2 пишет: Но в..


valery2 пишет:

 цитата:
Но ведь это - не метод..



Что значит не метод? И что значит - опять у нас нет решения на простые для других вопросы?


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 907
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.05.08 13:06. Заголовок: valery2 пишет: поде..


valery2 пишет:

 цитата:
поделитесь



В сырцах TSBrowse есть метод Excel2 - из грида формируется документ xls
Можно его использовать, конечно, модифицировав для данного случая

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 44
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 12.05.08 15:10. Заголовок: Pasha пишет: В сырц..


Pasha пишет:

 цитата:
В сырцах TSBrowse есть метод Excel2 - из грида формируется документ xls
Можно его использовать, конечно, модифицировав для данного случая

Спасбо! Честное слово. Но там же работы - на неделю, а доводка - на месяц(ы)
Неужели никто реально не решал эту проблемму ? Потом, TSBrowse - с ним тоже пробовал. Результат - тот-же. Может я что-то не так ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 444
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.05.08 15:55. Заголовок: valery2 пишет: Неуж..


valery2 пишет:

 цитата:
Неужели никто реально не решал эту проблемму ?



Боюсь, что ни у кого таких глобальных проблем не возникало.

Откройте любую базу,
сделайте COPY TO temp.xls DELIMITED WITH TAB
откройте в Excel вновь созданный temp.xls

Используйте OLE вместо "напильника"

Получите тот же результат


 цитата:
oExcel := TOleAuto():New( "Excel.Application" )
if Ole2TxtError() != 'S_OK'
MsgStop('Excel is not available!', PROGRAM )
RETURN
endif
oExcel:Visible := .F.
oExcel:WorkBooks:Add()
oSheet := oExcel:Get( "ActiveSheet" )

Aeval( (cAlias)->( DBstruct(cAlias) ), { |e,i| oSheet:Cells( nCell, i ):Value := e[DBS_NAME] } )
do while !(cAlias)->( EoF() )
nCell++
aColumns := (cAlias)->( Scatter() )
aEval( aColumns, { |e,i| oSheet:Cells( nCell, i ):Value := e } )
(cAlias)->( DBskip() )
enddo

oBook := oExcel:Get("ActiveWorkBook")
oBook:Title := cAlias
oBook:Subject := cAlias
oBook:SaveAs(cFile)
oExcel:Quit()


но гораздо быстрее.

P.S. Реализация метода Excel 2 в TSBrowse - это та же генерация файла biff 2.1.





Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 45
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 12.05.08 16:04. Заголовок: Вот за ЭТО - СПАСИ..


Вот за ЭТО - СПАСИБО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 46
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 13.05.08 09:33. Заголовок: Прошу пощения, но о..


Прошу пощения, но опять непонятки. Я, мягко говоря, не спец ни с excel, ни с ole.Петр пишет:

 цитата:
сделайте COPY TO temp.xls DELIMITED WITH TAB
откройте в Excel вновь созданный temp.xls


сделал
Петр пишет:

 цитата:
Используйте OLE вместо "напильника"



а вот тут - я тупорылый. temp.xls - ведь текстовый. И что сним делать ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 566
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.05.08 11:08. Заголовок: valery2 пишет: а во..


valery2 пишет:

 цитата:
а вот тут - я тупорылый. temp.xls - ведь текстовый. И что сним делать ?



Открывай его в Екселе вплоть до: RUN excel temp.xls

Или через Оле вызывать Ексел и открывать этот файл.
Пример можете смотреть в ?:\xHarbour\tests\testole.prg

Успехов ....

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 47
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 13.05.08 11:29. Заголовок: Спасибо, Andrey.


Открывается-то элементарно
 цитата:
oExcel:WorkBooks:Open( CurDrive() + ":\" + curdir()+"\temp.xls" )

А вот дальше... Дохожу до
 цитата:
oBook:SaveAs(kyda+"\ttt.xls")

Сыплются запросы на сохранение, замену. Забыл сказать: вначале
 цитата:
oExcel:Visible := .F.

Нужно, чтобы весь просесс был скрытым для юзера. А - oBook:SaveAs(kyda+"\ttt.xls") - сначала задает вопрос "сохранить ttt.xls", затем сообщает, что такой уже есть ( он успел уже кинуть туда ttt.xls, но с текстовыми потрохами), потом выдет putfile, с установками на txt, и, только, указав все атрибуты, получаю нужное.
Нужно-то все молча.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 48
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 13.05.08 12:02. Заголовок: Вот текст :procedu..


Вот текст :
 цитата:
procedure dbxls(kyda)
Local oExcel, oSheet, oBook
oExcel := TOleAuto():New( "Excel.Application" )
if Ole2TxtError() != 'S_OK'
MsgStop('Excel не найден!')
RETURN
endif

COPY TO temp.xls DELIMITED WITH TAB

oExcel:Visible := .F.
oExcel:WorkBooks:Open( CurDrive() + ":\" + curdir()+"\temp.xls" )

oSheet := oExcel:Get( "ActiveSheet" )

oBook := oExcel:Get("ActiveWorkBook")
oBook:SaveAs(kyda+"\ttt.xls")

oExcel:Quit()
return

Где-что-нитак?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 568
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.05.08 13:39. Заголовок: valery2 пишет: снач..


valery2 пишет:

 цитата:
сначала задает вопрос "сохранить ttt.xls", затем сообщает, что такой уже есть ( он успел уже кинуть туда ttt.xls, но с текстовыми потрохами), потом выдет putfile, с установками на txt, и, только, указав все атрибуты, получаю нужное.



Перед записью в ttt.xls удаляй сам такой файл, не надейся на ЕКСЕЛЬ !!!

И посмотри здесь на форуме как сохранить файл для WORD'a - технология одна ОЛЕ !!!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 49
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 13.05.08 13:55. Заголовок: Andrey пишет: Перед..


Andrey пишет:

 цитата:
Перед записью в ttt.xls удаляй сам такой файл, не надейся на ЕКСЕЛЬ !!!

Посмотрите на мою проц - в этом вся загвоздка!!!!! Перед
 цитата:
oBook:SaveAs(kyda+"\ttt.xls")

ничего не происходит! Вот далее - все то, что перечисленно выше. Удалять-то нечего!?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 50
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 13.05.08 14:16. Заголовок: :sm33: :sm85: :..




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 51
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 13.05.08 15:34. Заголовок: Нашел на форуме Sav..


Нашел на форуме
 цитата:
SaveAs(FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding, AddBiDiMarks)

Но, если с 1-м параметром все ясно, 2-й ---- не знаю что подставить- все ошибка. За 3-й еще не брался.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 49 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 109
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет