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



Пост N: 4
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 12.05.09 10:16. Заголовок: Нужен конвертер DBF в XLS


Добрый день,
нужен конвертер формата DBF (консольный xHarbour) в формат XLS, с перекодировкой из 866 в 1251
Спасибо...

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





Пост N: 26
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 04.10.11 08:40. Заголовок: Прикрепил файл... то..


Прикрепил файл... только ссылку не запомнил
Function Xls_Cvod
Local oExcel,oSheet,oBook,oAs
Local oExcel_S,oSheet_S,oBook_S,oAs_1
Main_File:=Mar10+'Rpt_Azs' // сводный отчет
oExcel_S:=ToleAuto():New("Excel.Application")
oExcel_S:Workbooks:Open(Main_File)
oBook_S :=oExcel_S:ActiveWorkBook
oExcel_S:Set( "DisplayAlerts",.F.)
oAs_S :=oExcel_S:ActiveSheet()
oSheet_S:=oBook_S :Sheets(1)
oExcel_S:Visible := .T.
// 1 xls отчет
File_Ex:='01_Table'
Xls_Copy:=Mar12+File_Ex
oExcel :Workbooks:Open(Xls_Copy)
oExcel :Set( "DisplayAlerts",.F.)
oAs:= oExcel:ActiveSheet()
oRange := oExcel:ActiveCell:SpecialCells(xlLastCell)
cRecno :=oRange:Row
cColumn:=oRange:Column
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Select()
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Copy()
// переход на сводный отчет
oAs_S:Cells(5,1):Select()
oAs_S:Paste()
Hb_gtInfo(HB_GTI_CLIPBOARDDATA, "") // очистка буфера обмена
oExcel:CutCopyMode := .F.
oExcel:Quit() // закрытие локального xls файла
// 2 xls отчет
File_Ex:='02_table'
Xls_Copy:=Mar12+File_Ex
oExcel :Workbooks:Open(Xls_Copy)
Hb_gtInfo(HB_GTI_CLIPBOARDDATA, "") // очистка буфера обмена
oAs:= oExcel:ActiveSheet()
oExcel :Visible := .T.
oExcel :Set( "DisplayAlerts",.F.)
oRange := oExcel:ActiveCell:SpecialCells(xlLastCell)
cRecno :=oRange:Row
cColumn:=oRange:Column
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn)):Select()
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn)):Copy()
oExcel:Quit()
// переход на сводный отчет
oBook_S :=oExcel_S:ActiveWorkBook
oAs_S :=oExcel:ActiveSheet()
oSheet_S:=oBook_S :Sheets(2)
oAs_S :Cells(5,1):Select()
oAs_S:Paste()
oAs_S:SaveAs(Main_File,Excel97_10)
Hb_gtInfo(HB_GTI_CLIPBOARDDATA, "")
oExcel:CutCopyMode := .F.
oAs_S:SaveAs(Main_File,Excel97_10) // запись сводного отчета
oExcel_S:Quit()

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



Пост N: 27
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 04.10.11 08:42. Заголовок: „O„Љ„y„q„{„p „Ѓ„‚„y ..


„O„Љ„y„q„{„p „Ѓ„‚„y „Ђ„‚„p„q„Ђ„„„{„u 2 xls „†„p„z„|„p
„~„p „ѓ„„„‚„Ђ„{„u
oAs_S :Cells(5,1):Select()
|Error BASE/1004 Class: 'NIL' has no exported method: CELLS Arguments: ( [ 1] = |
|Type: U [ 2] = Type: N Val: 5 [ 3] = Type: N Val: 1) „ |


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



Пост N: 28
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 04.10.11 08:43. Заголовок: ссылка на файл http:..


ссылка на файл http://zalil.ru/31804807

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



Пост N: 29
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 04.10.11 08:53. Заголовок: Нашел ошибку, в стро..


Нашел ошибку, в строке oAs_S :=oExcel:ActiveSheet() записал как oAs_S :=oExcel_S:ActiveSheet(), теперь ругается на
oAs_S:Paste()
Error Excel.Application:ACTIVESHEET/3 DISP_E_MEMBERNOTFOUND: PASTE Arguments: (|
|)




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



Пост N: 31
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 04.10.11 12:43. Заголовок: Получилось, спасибо ..


Получилось, спасибо за советы и терпение....
Теперь вопрос как снять выделение диапазона на листах сводного отчета?
Использую команду
Hb_gtInfo(HB_GTI_CLIPBOARDDATA, "") // очистка буфера обмена
oExcel_S:CutCopyMode :=.F. // снятие выделения диапазона ячеек

все листы, которые получены через копирование ячеек из локальных XLS остаются с выделенным диапазоном.

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



Пост N: 33
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 04.10.11 13:33. Заголовок: Дективировал выделен..


Дективировал выделение ячеек, через выбор ячейки на листе....
Всем успехов и удачи.

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




Пост N: 1896
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.10.11 22:33. Заголовок: Oskar_AAA пишет: Де..


Oskar_AAA пишет:

 цитата:
Дективировал выделение ячеек, через выбор ячейки на листе....



А как ?
Нам тоже интересно !

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



Пост N: 35
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 05.10.11 05:04. Заголовок: Andrey, установил ку..


Andrey, установил куросор или другими словами активировал ячейку...

oSheet_S:=oBook_S :Sheets(3):Select() // выбор листа и активация нужного листа
oBook_S :=oExcel_S:ActiveWorkBook
oAs_S :=oExcel_S:ActiveSheet()
oSheet_S:=oBook_S :Sheets(3)
oAs_S :Cells(5,1):Select() // установка нужной ячейки с которой надо вставлять из буфера
oSheet_S:Paste() // собственно вставка
oAs_S :Cells(5,1):Select() // активация ячейки

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



Пост N: 37
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 07.10.11 06:08. Заголовок: Добрый день, возникл..


Добрый день, возникла интересная ситуация.
На 1 ПК установлена русская версия Windows 7, SP1 и Office 2010, на 2 ПК XP, SP1 и Office 2003. На этих ПК установлены xHarbour, BCC5 одинаковые.
Так вот на Windows 7, SP1 и Office 2010 обработка сводного отчета XLS проходит нормально, а на другом вываливается по ошибке

фрагмент кода обработки
oSheet_S:=oBook_S :Sheets(1):Select()
oBook_S :=oExcel_S:ActiveWorkBook
oAs_S :=oExcel_S:ActiveSheet()
oSheet_S:=oBook_S :Sheets(1)
oAs_S :Cells(5,1):Select()
Day_Excel:=Mar12+Dtos(Cdata)+'Day' // формирование имени файла отчета
oAs_S:SaveAs(Day_Excel,Excel97_10) // запись файла отчета
oExcel_S:Quit()




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



Пост N: 40
Зарегистрирован: 19.08.10
ссылка на сообщение  Отправлено: 07.10.11 08:26. Заголовок: Oskar_AAA пишет: oA..


Oskar_AAA пишет:

 цитата:
oAs_S:SaveAs(Day_Excel,Excel97_10) // запись файла отчета



А Office 2003 разве работает с форматом Office 2010

Надо бы сохранять в формате 97-2003 (или же 97-2000). Как вариант - поставить на остальные 2 компа Office 2010.

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




Пост N: 2119
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.10.11 08:34. Заголовок: Огласите, что за оши..


Огласите, что за ошибка
и что такое Excel 97_10 ? Какая-то переменная ?

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



Пост N: 41
Зарегистрирован: 19.08.10
ссылка на сообщение  Отправлено: 07.10.11 10:44. Заголовок: Pasha пишет: что та..


Pasha пишет:

 цитата:
что такое Excel 97_10 ? Какая-то переменная ?




 цитата:
oAs_S:SaveAs(Day_Excel,Excel97_10)



Это из VBA: параметр, указывающий, в каком формате Excel будет сохранять файл с именем, указанным в первом параметре. В данном случае Excel97_10, то есть в формате Office 2010. А Oskar_AAA пытается сохранить в этом формате из Office 2003, на что тот реагирует ошибкой. Надо бы ставить Excel97_03, но тогда при попытке запустить под Office 2000/97 опять ошибка вылезет. Параметр Excel97 более универсален: будет работать с 97 по 2010 включительно.



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



Пост N: 38
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 07.10.11 13:17. Заголовок: Excel97_10 - это ест..


Excel97_10 - это есть переменная, котора принимает значение 43 или 56 в зависимости от версии MS Excel, прописана в настройках своего ПО.
программа вываливается на Exce 2003 ТОЛЬКО при обработке двух XLS отчетов одновременно, т.е . открывает локальный отчет, берет из него данные и ВНОСИТ их в уже ОТКРЫТЫЙ сводный отчет на определенный лист. Далее закрывается локальный отчет и копия oExcel, котрым он был открыт. Далее опять запускается новая копия Excel и открывается другой локальный отчет и опять берет из него данные и ВНОСИТ их в уже ОТКРЫТЫЙ сводный отчет на определенный лист.
Попытка открыть Два файла использую одну копию Excel у меня вылетает ошибка.
Как открывать два и более файлов, использую одну копию Excel (как определить и различать переменные oExcel, oBook, oSheets, oAs, oRange)?
Как записать и закрыть определеный (Документ) файл XLS, при этом не Закрывая само Приложение Excel?
пока делаю так:

Local oExcel,oSheet,oBook,oAs
Local oExcel_S,oSheet_S,oBook_S,oAs_1
// svod XLS
Main_File:=Mar10+'Rpt_Azs'
oExcel_S:=tOleAuto():New("Excel.Application")
oExcel_S:Workbooks:Open(Main_File)
oBook_S :=oExcel_S:ActiveWorkBook
oAs_S :=oExcel_S:ActiveSheet()
oSheet_S:=oBook_S :Sheets(1):Select()
oExcel_S:Set("DisplayAlerts",.F.)
oExcel_S:Visible := .F.
// local XLS 1
File_Ex:='01_Table'
Xls_Copy:=Mar12+File_Ex
oExcel :=tOleAuto():New("Excel.Application")
oExcel :Workbooks:Open(Xls_Copy)
oExcel :Set("DisplayAlerts",.F.)
oExcel :CutCopyMode := .F.
oAs:= oExcel:ActiveSheet()
oRange :=oExcel:ActiveCell:SpecialCells(xlLastCell)
cRecno :=oRange:Row
cColumn:=oRange:Column
///
///
oExcel_S:CutCopyMode :=.F.
oExcel:Quit()
oAs:=Nil
oExcel:=Nil
oRange:=Nil
oBook :=Nil
// local XLS 2
File_Ex:='02_table'
Xls_Copy:=Mar12+File_Ex
oExcel :=tOleAuto():New("Excel.Application")
oExcel :Workbooks:Open(Xls_Copy)
oExcel :Visible := .F.
oExcel :Set("DisplayAlerts",.F.)
oExcel :CutCopyMode :=.F.
oExcel :Visible := .F.
oAs:= oExcel:ActiveSheet()
oRange :=oExcel:ActiveCell:SpecialCells(xlLastCell)
cRecno :=oRange:Row
cColumn:=oRange:Column
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn)):Select()
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn)):Copy()
oExcel :Visible := .F.
oExcel_S:Visible := .F.
///
///
oExcel:Quit()
oAs:=Nil
oExcel:=Nil
oRange:=Nil
oBook :=Nil


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




Пост N: 2120
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.10.11 13:22. Заголовок: Так все-таки, что за..


Так все-таки, что за ошибка возникает ? И на каком точно операторе, SaveAs ?

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



Пост N: 39
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 07.10.11 13:39. Заголовок: Pasha, номер ошибки ..


Pasha, номер ошибки и строку кода, на которой вылетает сброшу в понедельник. Сейчас под руками нет того ПК. Спасибо

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



Пост N: 40
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 10.10.11 05:24. Заголовок: Добрый день всем. Pa..


Добрый день всем. Pasha, сообщение об ошибке
----------------------------- xHarbour Error Log ------------------------------

Date...............: 07/10/2011
Time...............: 21:21:55

Available memory...: 690844
Current disk.......: C
Current directory..: TEMP.BL1
Free disk space....: 17157193728

Operating system...: Windows XP Professional 5.01.2600 Service Pack 3
xHarbour version...: xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 6476)
xHarbour built on..: Jun 11 2009 09:38:24
C/C++ compiler.....: Borland C++ 5.5.1 (32 bit)
Multi Threading....: NO
VM Optimization....: 2


-------------------- Internal Error Handling Information ---------------------

Subsystem Call ....: Excel.Application:ACTIVESHEET
System Code .......: 3
Default Status ....: .F.
Description .......: DISP_E_MEMBERNOTFOUND
Operation .........: SAVEAS
Arguments .........: [ 1] = Type: C Val: C:\PROBA.ALL\FILES.EXP\20110907Day [ 2] = Type: N Val: 43
Involved File .....:
Dos Error Code ....: 0

Trace Through:
----------------
TOLEAUTO:SAVEAS : 0 in Module: source\rtl\win32ole.prg
EXCEL_DAY1 : 1,835 in Module: COMM_004.prg
EXPORT_DATA : 474 in Module: MAIN_000.prg
MAIN : 184 in Module: MAIN_000.prg





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




Пост N: 2121
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.10.11 07:49. Заголовок: Oskar_AAA пишет: --..


Oskar_AAA пишет:

 цитата:
-------------------- Internal Error Handling Information ---------------------

Subsystem Call ....: Excel.Application:ACTIVESHEET
System Code .......: 3
Default Status ....: .F.
Description .......: DISP_E_MEMBERNOTFOUND
Operation .........: SAVEAS



Метод SaveAs надо применять не к листу, а к книге, т.е. к oBook.
Лист ведь отдельно не сохраняется. Сохраняется вся книга.

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



Пост N: 41
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 10.10.11 10:49. Заголовок: Pasha, т.е надо запи..


Pasha, т.е надо записать
oWorbook_S:SaveAs(Day_Excel,Excel97_10) вместо
oAs_S:SaveAs(Day_Excel,Excel97_10)
я правильно понял?

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




Пост N: 2122
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.10.11 11:06. Заголовок: Oskar_AAA пишет: Pa..


Oskar_AAA пишет:

 цитата:
Pasha, т.е надо записать
oWorbook_S:SaveAs(Day_Excel,Excel97_10) вместо
oAs_S:SaveAs(Day_Excel,Excel97_10)
я правильно понял?



В вашем коде же нет переменной oWorbook_S. И из воздуха она сама по себе не возникнет.
Надо использовать ту переменную, в которую зенесено значение ActiveWorkbook, или какой-либо другой книги, которую надо сохранить.


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



Пост N: 42
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 10.10.11 11:18. Заголовок: попробую на другом П..


попробую на другом ПК, это вечером.
А как сделать так чтобы:
в процессе работы активировался Excel, пользователь внес необходимые данные, затем прошла запись данных в файл XLS и переход обратно в xHarbour.
Другими словами: ввод данных в дилоговом режиме, активируется Excel, пользователь вносит данные в таблицу Excel, записывает Excel файл и управление обратно переходт в программу xHarbour. У меня gпользователи привыкли к вводу в Excel...

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

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