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: 1213
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.05.09 10:47. Заголовок: Excel и так чудно по..


Excel и так чудно понимает DBF формат

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



Пост N: 5
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 12.05.09 10:57. Заголовок: Dima, Excel понимает..


Dima, Excel понимает, но проблема в том, что есть файл XLS в нем куча (30) листов, и 53 DBF файла-источника. При открытии XLS файла - запрос "обновить" и
Если файлы источники в формате DBF то нужно Каждый файл DBF руками открывать - Грустно
Если файлы источники в формате XLS - Excel Чудненько Все Сам Делает (Обновляет данные).
Спасибо...

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




Пост N: 1120
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.05.09 11:04. Заголовок: Файл dbf можно прост..


Файл dbf можно просто открыть экселем, и затем сохранить его как xls
Если это надо сделать программно - то с помощью TOleAuto

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



Пост N: 6
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 12.05.09 11:13. Заголовок: Можно ли получить пр..


Можно ли получить пример...
xHarbour версия xHarbour Compiler build 1.0.0 (SimpLex) консольный вариант программы

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



Пост N: 7
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 12.05.09 11:19. Заголовок: Можно ли получить пр..


Можно ли получить пример...
xHarbour версия xHarbour Compiler build 1.0.0 (SimpLex) консольный вариант программы

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




Пост N: 1121
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.05.09 11:39. Заголовок: Примерно так: oExce..


Примерно так:

oExcel := TOleAuto():New( "Excel.Application" )
cFile := '....dbf'
oExcel:Workbooks:Open( cFile )
oExcel:Visible := .T.
oSheet := oExcel:ActiveSheet
oSheet:SaveAs('file.xls', 39)


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



Пост N: 8
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 12.05.09 11:43. Заголовок: Ok, попробую.....


Ok, попробую...

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



Пост N: 9
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 12.05.09 12:02. Заголовок: Dima, спасибо. Работ..


Dima, спасибо. Работает, как сделать обработку (конвертацию без активизации Excel). Обработка в фоновом режиме....

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




Пост N: 1122
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.05.09 12:39. Заголовок: У класса TSBrowse ес..


У класса TSBrowse есть метод Excel2. Он как раз побайтно формирует файл xls.
Этот класс есть, кажется, в поставке minigui


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



Пост N: 10
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 12.05.09 13:28. Заголовок: Pasha, извени, что о..


Pasha, извени, что обращался к Dime...
В строке
oExcel:Visible := .Т. заменил на .F. результат Excel не активируется - то ЧТО Нужно, но файл XLS получается в режиме Read Only, в отдельных случаях тоже пойдет. с классом TSBROWSE метод Excel2 не разбирался... Пока нет времени. Спасибо.


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



Пост N: 11
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 12.05.09 13:39. Заголовок: Где-то был момент по..


Где-то был момент по закрытию Excel...
Pasha подскажи как де активировать (закрыть) Excel в процессах.
oExcel := TOleAuto():New( "Excel.Application" )
cFile := Text_Dbf2
oExcel:Workbooks:Open( cFile )
oExcel:Visible := .F.
oSheet := oExcel:ActiveSheet
oSheet:SaveAs(Text_Xls2, 39)


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



Пост N: 12
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 12.05.09 13:48. Заголовок: Поставил oExcel:Quit..


Поставил oExcel:Quit() - нормально....
Спасибо

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




Пост N: 1882
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.11 21:41. Заголовок: Есть DBF-база 80 тыс..


Есть DBF-база 80 тыс. записей.
Нужно сделать из базы (взять часть полей) XLS-файл типа такого:
Увеличить

Сделал через Ole Excel - долго, минут 10-15 делается.
Как бы побыстрей это сделать ?

И еще до конца не просчитывает зараза, выдает в trace.log ошибку:
TOleAuto Error 80010001 - и что это означает ?

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



Пост N: 17
Зарегистрирован: 08.02.11
ссылка на сообщение  Отправлено: 08.09.11 01:04. Заголовок: Может сначала сделат..


Может сначала сделать что-то типа CSV-файла с выбранными данными а потом засосать его в Эксел

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



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.09.11 06:08. Заголовок: Через Excel


Excel имеет ограничение по числу строк, для версий ниже Excel 2007 - 64 или 32 тысячи строк.
Возможно,проблема в этом.

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




Пост N: 237
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 08.09.11 07:18. Заголовок: Загуглил на "Exc..


Загуглил на "Excel error 80010001" - в частности, выдало ссылку и сюда: Перевод ошибок автоматизации (http://support.microsoft.com/kb/186063/ru). Может быть, поможет? А, скорее всего, это из-за ограничения Excel'а, про которое написал выше petr707 (сам я тоже как-то поубивался над длинной выборкой в Excel 2003 - вылетало, зараза, и все... оказалось - именно это).

Андрей, а может выводить напрямую в BIF-файл? как здесь давненько обсуждалось

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




Пост N: 1883
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.09.11 19:35. Заголовок: gustow пишет: а мож..


gustow пишет:

 цитата:
а может выводить напрямую в BIF-файл?


А еще есть вариант сделать отчет в FastReport, а потом его экспортировать в BIF файл !

А что буржуи делают, может кто знает ?

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




Пост N: 2053
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.09.11 10:33. Заголовок: В классе TSBrowse из..


В классе TSBrowse из fivewin/minigui есть метод Excel2, который формирует файл xls, записывая двоичные данные. Его можно использовать, заменив источник информации: вместо колонок обьекта использовать поля файла. Это очень быстрый способ формирования xls

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



Пост N: 5
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 27.09.11 13:18. Заголовок: Добрый день. Теперь ..


Добрый день. Теперь поставлена задача: данные из файла(ов) DBF (количество записей разное) закинуть в файл XLS, имеющий кучу листов (10 - 15), с шапками и формтами ячеек....?
Смотрел сообщения Gustow и Andrey, что-то не получается у меня.
Октрываю два файла XLS источник и приемник, далее:
1. перейти на НУЖНЫЙ лист файла приеника
2. Скопировать данные из файла DBF/XLS (пример Gustow - "нумерация страниц excel")
3. Сформатировать лист файла приеника

c Excel - грустно..
Вопросы:
Как активировать Нужный лист в Нужной книге?
Переход между книгами?
Как форматироваь ячейки (формат, рамки, шрифт, фон итд)?

Вариант, которым пользовался раньше (пакетная выгрузка в файлы DBF->конветация DBF to XLS->Загрузка Отчета(XLS) в котром просто ссылки на файл(ы) источник(и) ...) А Теперь переменное количество строк + форматирование (объединение ячеек по условию), + выделение цветом итд, + рамки....

Использую:
Office 2010 & xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6476)



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




Пост N: 1893
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.09.11 15:05. Заголовок: Oskar_AAA пишет: c ..


Oskar_AAA пишет:

 цитата:
c Excel - грустно..


Согласен полностью.
Его можно использовать как простой показ небольших отчетов.
Но если ты гуру в Ехеле, то конечно можно делать все...

Переходи на FastReport и проблемы пропадут....


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



Пост N: 21
Зарегистрирован: 08.02.11
ссылка на сообщение  Отправлено: 28.09.11 02:13. Заголовок: Элементарные операци..


Элементарные операции. Копия из текста одной утилиты.
Начало работы
	// 
oExcel := TOleAuto():New( "Excel.Application" )
oBook:=oExcel:WorkBooks:Add() //новая пустая книга
//подогнать количество листов под количестко точек измерения
k:=oBook:Sheets:Count //количество листов в новой книге
do while (oBook:Sheets:Count)<len(aTmp) //листов меньше чем точек измерения - добавить
oBook:Sheets:Add()
enddo

Если нужно - добавляй еще новые книги - oBook1, oBook2, ...
----------
заполнение и форматирование ячеек
	Row1:=3 //начало таблицы 
for mpi:=1 to len(aTmp) //пойти по точкам измерения
oSheet:=oBook:Worksheets(mpi) //выбрать лист номер mpi
oSheet:name:=aTmp[mpi] //имя листа изменить

//рисуем "шкалу часов"
oSheet:Cells( Row1, 1 ):Value:="час суток"
oSheet:Cells( Row1, 1 ):set('WrapText',.t.)
oSheet:Cells( Row1, 1 ):BorderAround( xlContinuous, xlThin)
oSheet:Cells( Row1, 1 ):Borders(xlEdgeBottom):Weight := xlMedium
oSheet:Cells( Row1, 1 ):Borders(xlEdgeRight):LineStyle := xlDouble
for i:=1 to 24 //часы суток
oSheet:Cells( Row1+i, 1 ):Value:=i
//oSheet:Cells( Row1+i, 1 ):Borders(xlEdgeBottom):Weight := xlMedium
oSheet:Cells( Row1+i, 1 ):Borders(xlEdgeRight):LineStyle := xlDouble
next
//рисуем данные
for i:=1 to len(aRes) //перебрать даты
oSheet:Cells( Row1, 1+i ):Value:=aRes[i,1] //дата
oSheet:Cells( Row1, 1+i ):Set( "VerticalAlignment", xlCenter)
oSheet:Cells( Row1, 1+i ):BorderAround( xlContinuous, xlThin)
oSheet:Cells( Row1, 1+i ):Borders(xlEdgeBottom):Weight := xlMedium
//найти ветку нужной точки измерения
if (j:=aScan(aRes[ i ],{|x| x[1]=aTmp[mpi]}))=0
loop
endif
//значения за дату
k:=1
do while k<=len(aRes[i,j,2])
if aRes[i,j,2,k,3]=2 //за час просуммированы два измерения
oSheet:Cells( Row1+aRes[i,j,2,k,1], 1+i ):Value:=aRes[i,j,2,k,2]
endif
//oSheet:Cells( Row1+aRes[i,j,2,k,1], 1+i ):BorderAround( xlContinuous, xlThin)
k++
enddo
next

//=СЧЁТ(RC[-10]:RC[-1])
//=СУММ(RC[-11]:RC[-2])/RC[-1]
//написать формулы
k:=len(aRes)
oSheet:Cells( Row1, 1+k+1):Value:="колич. измерений"
oSheet:Cells( Row1, 1+k+1):set('WrapText',.t.)
oSheet:Cells( Row1, 1+k+1):BorderAround( xlContinuous, xlThin)
oSheet:Cells( Row1, 1+k+1):Borders(xlEdgeBottom):Weight := xlMedium
oSheet:Cells( Row1, 1+k+2):Value:="среднее потребление"
oSheet:Cells( Row1, 1+k+2):set('WrapText',.t.)
oSheet:Cells( Row1, 1+k+2):BorderAround( xlContinuous, xlThin)
oSheet:Cells( Row1, 1+k+2):Borders(xlEdgeBottom):Weight := xlMedium
for i:=1 to 24 //часы суток
oSheet:Cells( Row1+i, 1+k+1):Formula:="=СЧЁТ(RC[-"+alltrim(str(k))+"]:RC[-1]"
oSheet:Cells( Row1+i, 1+k+2):Formula:="=ОКРУГЛ(СУММ(RC[-"+alltrim(str(k+1))+"]:RC[-2])/RC[-1];0)"
next
//сумма по часам
for i:=1 to 24 //часы суток
//msgbox(valtype(aSum[ i ]))
aSum[ i ]:=aSum[ i ]+oSheet:Cells( Row1+i, 1+k+2):Value
next

next

//лист суммы
oBook:Sheets:Add()
oSheet:=oBook:Activesheet
oSheet:name:="Итого"

oSheet:Cells( Row1, 1 ):Value:="час суток"
oSheet:Cells( Row1, 1 ):set('WrapText',.t.)
oSheet:Cells( Row1, 1 ):BorderAround( xlContinuous, xlThin)
oSheet:Cells( Row1, 1 ):Borders(xlEdgeBottom):Weight := xlMedium
oSheet:Cells( Row1, 1 ):Borders(xlEdgeRight):LineStyle := xlDouble
oSheet:Cells( Row1, 2):Value:="среднее без вычета"
oSheet:Cells( Row1, 2):set('WrapText',.t.)
oSheet:Cells( Row1, 2):BorderAround( xlContinuous, xlThin)
oSheet:Cells( Row1, 2):Borders(xlEdgeBottom):Weight := xlMedium
oSheet:Cells( Row1, 3):Value:="среднее с вычетом"
oSheet:Cells( Row1, 3):set('WrapText',.t.)
oSheet:Cells( Row1, 3):BorderAround( xlContinuous, xlThin)
oSheet:Cells( Row1, 3):Borders(xlEdgeBottom):Weight := xlMedium
n:=wMain.txt_Minus.Value //ежечасный вычет
for i:=1 to 24 //часы суток
oSheet:Cells( Row1+i, 1 ):Value:=i
//oSheet:Cells( Row1+i, 1 ):Borders(xlEdgeBottom):Weight := xlMedium
oSheet:Cells( Row1+i, 1 ):Borders(xlEdgeRight):LineStyle := xlDouble
oSheet:Cells( Row1+i, 2 ):Value:=aSum[ i ]
oSheet:Cells( Row1+i, 3 ):Value:=aSum[ i ]-n
next


//msgbox("конец")

oExcel:Visible := .T.




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



Пост N: 6
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 28.09.11 12:20. Заголовок: Спасибо, за помощь....


Спасибо, за помощь....

С форматированием таблицы разобрался, на сегодня пойдет.
Фрагмент кода

oExcel :Visible := .F.
oExcel :Workbooks:Open(Main_File) // сводный отчет XLS из 9 листов
oKlSheet :=oExcel:Sheets:Count //
oSheet :=oBook:Worksheets(1)

oAs :=oExcel:ActiveSheet()
oExcel :Workbooks:Open(Dbf_file) // частный отчет (лист1), по которому проходит форматирование
oRange := oExcel:ActiveCell:SpecialCells(xlLastCell)
nLenRecnoXls := oRange:Row
nLenColumnXls := oRange:Column
cRecno := Val(AllTrim(Str(nLenRecnoXls)))
cColumn := Val(AllTrim(Str(nLenColumnXls)))
oExcel:Set( "DisplayAlerts",.F.)
oAs:= oExcel:ActiveSheet()
oAs:Columns(2):Font:Bold := .T.
For J_Rec = 4 To cColumn-4
oAs:Columns(J_Rec):NumberFormat:= "# ##0,00;-0,00;"
Next
oAs:Columns(7):NumberFormat:= "0,0000;;"

oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Borders(xlEdgeTop):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Borders(xlEdgeBottom):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,1),oAs:Cells(cRecno,cColumn-4)):Borders(xlEdgeRight):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,1),oAs:Cells(cRecno,cColumn-4)):Borders(xlInsideVertical):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,1),oAs:Cells(cRecno,cColumn-4)):Borders(xlInsideHorizontal):LineStyle:= xlContinuous
For I_Rec = 2 To cRecno
I_Rec1:=I_Rec-1
If I_Rec1/Rc_OilKol-Int(I_Rec1/Rc_OilKol)==0
I_Rec2:=(Int(I_Rec1/Rc_OilKol)-1)*(Rc_OilKol+1)+2
I_Rec3:=Int(I_Rec1/Rc_OilKol)*(Rc_OilKol+1)+1
I_Rec4:=I_Rec3-1
* If I_Rec3<cRecno
oAs:Rows(I_Rec3):Font:Bold:= .T.
oAs:Rows(I_Rec3):Interior:ColorIndex = 6
oAs:Rows(I_Rec3):WrapText = .T.
oAs:Range(oAs:Cells(I_Rec2,2),oAs:Cells(I_Rec4,2)):Merge()
oAs:Range(oAs:Cells(I_Rec2,2),oAs:Cells(I_Rec4,2)):HorizontalAlignment := xlCenter
oAs:Range(oAs:Cells(I_Rec2,2),oAs:Cells(I_Rec4,2)):VerticalAlignment:= xlCenter
* Endif
Endif
Next



oAs:Cells(2,2):Select()
oAs:SaveAs(Xls_File,Excel97_10)
oExcel:Set( "DisplayAlerts",.T.)
oExcel :Visible := .T.

Теперь надо:
1. перейти в Общий файл (Main_File) на Конкретный Лист
2. Скопировать диапазон из Open_Dbf
3. Вставить на Конкретный Лист Main_File


SADSTAR4: по коду oSheet:=oBook:Worksheets(1) вылетает ошибка

Error BASE/1004 Class: 'NIL' has no exported method: WORKSHEETS Arguments: ( [ |
|1] = Type: U [ 2] = Type: N Val: 1)

Что в коде не так?

PS.
Думаю переделать алгоритм формирования отчета....
1. Открыть сводный отчет (Main_File)
2. Перейти на Нужный Лист

3. Добавить в него данные из DBF
4. Сформатировать лист

Переход на другой лист

3. Добавить в него данные из DBF
4. Сформатировать лист
итд.
Запись отчета Main_File
Закрыть Excel.

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



Пост N: 23
Зарегистрирован: 08.02.11
ссылка на сообщение  Отправлено: 29.09.11 01:40. Заголовок: Oskar_AAA пишет: SA..


Oskar_AAA пишет:

 цитата:
SADSTAR4: по коду oSheet:=oBook:Worksheets(1) вылетает ошибка


Если это в четвертой строке - я не вижу создания ранее объекта oBook

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



Пост N: 7
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 05:30. Заголовок: SADSTAR4, да это 4 с..


SADSTAR4, да это 4 строка кода.
Но там открывается Сводный (конечный) отчет, в котром куча листов, шапки итд.
Мне нужно перейти на Лист N, допустим 1 или 3.

Далее по тексту кода в Excel Открывается полученный в результате обработки файл формата DBF, проходит его форматирование итд.
теперь скопировать текущий лист и далее вставить его в соответсвующий Лист Сводного отчета.

Т.е. не надо создавать (добавлять) листы в существующие файлы Excel....


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



Пост N: 24
Зарегистрирован: 08.02.11
ссылка на сообщение  Отправлено: 29.09.11 06:22. Заголовок: Если объект oBook не..


Если объект oBook не существует, то обращение к нему вызывает ошибку
попробуй сделать так
oBook:=oExcel :Workbooks:Open(Main_File) // сводный отчет XLS из 9 листов
oKlSheet :=oExcel:Sheets:Count // <-это не объект а число
oSheet :=oBook:Worksheets(1)

P.S. Что-то не пойму смысла этого кода
cRecno := Val(AllTrim(Str(nLenRecnoXls)))
cColumn := Val(AllTrim(Str(nLenColumnXls)))
Числовое значение преобразовать в строку а затем опять в число?


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



Пост N: 8
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 07:29. Заголовок: попробовал "oShe..


попробовал
"oSheet :=oBook:Worksheets(1) "

oBook:=oExcel :Workbooks:Open(Main_File) // сводный отчет XLS из 9 листов
oKlSheet :=oExcel:Sheets:Count // количество листов книги - нормально
oSheet :=oBook:Worksheets(1)
Вылетает Ошибка

Error BASE/1004 Class: 'NIL' has no exported method: WORKSHEETS Arguments: ( [ |
1] = Type: U [ 2] = Type: N Val: 1)

PS.
cRecno := Val(AllTrim(Str(nLenRecnoXls)))
cColumn := Val(AllTrim(Str(nLenColumnXls)))
- у меня "глаз замылился...."

Остался только этот блок
1. "Выбрать данные из литса текущей книги"
2. "Перейти на другую книгу (сводный отчет)"
3. "Выбрать Нужный лист"
4. "Вставить данные из п.1"

фрагмент кода
oAs:SaveAs(Xls_Copy,Excel97_10) // запись файла DBF в формате XLS
oAs:Cells(2,2):Select() // переход на ячеку
oAs:Cells:Copy() // копирование
oExcel :Workbooks:Open(Main_File) // открытие сводного отчета
oKlSheet :=oExcel:Sheets:Count // подсчет количества листов
oSheet :=oBook:Worksheets(1) // выбор листа
oAs :=oExcel:ActiveSheet()
// надо установить на нужную ячйеку (A5)
oSheet:Paste() // вставить данные
oAs:SaveAs(Main_File,Excel97_10) // запись сводного отчета
oExcel:Set( "DisplayAlerts",.T.)
oExcel :Visible := .T.


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




Пост N: 2080
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.09.11 08:14. Заголовок: Oskar_AAA пишет: по..


Oskar_AAA пишет:

 цитата:
попробовал
"oSheet :=oBook:Worksheets(1) "



Откуда взялся worksheets ? В лучших домах Европы и Филадельфии используют Sheets

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



Пост N: 9
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 08:21. Заголовок: т.е. надо oSheet:=oB..


т.е. надо oSheet:=oBook:Sheets(1) - все равно ошибка
|Error BASE/1004 Class: 'NIL' has no exported method: SHETTS Arguments: ( [ 1] =|
| Type: U [ 2] = Type: N Val: 1)░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|

Paha, подскажи как сделать.....

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




Пост N: 2081
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.09.11 08:28. Заголовок: Oskar_AAA пишет: Er..


Oskar_AAA пишет:

 цитата:
Error BASE/1004 Class: 'NIL' has no exported method: SHETTS Arguments: ( [ 1] =|



Просто очепятка. Надо Sheets

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



Пост N: 10
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 08:34. Заголовок: Pasha, точно опечатк..


Pasha, точно опечатка, исправил:
oAs:Cells(2,2):Select()
oExcel:Workbooks:Open(Main_File)
oSheet:=oBook:Sheets(1) ОШИБКА base/1004 - все равно есть????
oAs :=oExcel:ActiveSheet()
oAs:Cells(5,1):Select()
oAs:oSheet:Paste()


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




Пост N: 2082
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.09.11 08:42. Заголовок: Oskar_AAA пишет: Pa..


Oskar_AAA пишет:

 цитата:
Pasha, точно опечатка, исправил:
oAs:Cells(2,2):Select()
oExcel:Workbooks:Open(Main_File)
oSheet:=oBook:Sheets(1) ОШИБКА base/1004 - все равно есть????
oAs :=oExcel:ActiveSheet()
oAs:Cells(5,1):Select()
oAs:oSheet:Paste()



Семен Семеныч !
А переменную oBook создать надо ?
oBook := oExcel:ActiveWorkBook


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



Пост N: 11
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 08:48. Заголовок: Pasha, в этом я вооб..


Pasha, в этом я вообще не понимаю,
спасибо за помощь....
oAs:SaveAs(Xls_Copy,Excel97_10)
oAs:Cells(2,2):Select()
oExcel:Workbooks:Open(Main_File)
oBook := oExcel:ActiveWorkBook
oSheet:=oBook:Sheets(1)
oAs :=oExcel:ActiveSheet()
oAs:Cells(5,1):Select()
oAs:oSheet:Paste()
oAs:SaveAs(Xls_File,Excel97_10)
oExcel:Set( "DisplayAlerts",.T.)
oExcel :Visible := .T.
Вот такой код...
сейчас ошибка на Paste()
понятно, что нет COPY()....

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




Пост N: 2083
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.09.11 09:13. Заголовок: Oskar_AAA пишет: по..


Oskar_AAA пишет:

 цитата:
понятно, что нет COPY()....



Дык надо сделать copy. То, что надо вставить - предварительно скопировать. Метод Copy применяется к объекту range


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



Пост N: 12
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 09:20. Заголовок: Pasha, oAs:Cells(2,2..


Pasha,
oAs:Cells(2,2):Select() переход на ячей
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Copy() или как Правильно написать???
т.е надо с ячейки 2.2 до Crecno - количество строк, cColumn - количество столбцов выбрать в буфер



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




Пост N: 2084
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.09.11 09:26. Заголовок: Oskar_AAA пишет: oA..


Oskar_AAA пишет:

 цитата:
oAs:Cells(2,2):Select() переход на ячей
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Copy() или как Правильно написать???
т.е надо с ячейки 2.2 до Crecno - количество строк, cColumn - количество столбцов выбрать в буфер



Так правильно написано.

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



Пост N: 13
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 09:33. Заголовок: ошибок нет oAs:Range..


ошибок нет
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Select()
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Copy()
далее переход на сводный отчет
oExcel:Workbooks:Open(Main_File)
oBook := oExcel:ActiveWorkBook
oSheet:=oBook:Sheets(1)
oAs :=oExcel:ActiveSheet()
oAs:Cells(5,1):Select()
oAs:oSheet:Paste() // ошибка
|Error Excel.Application:ACTIVESHEET/3 DISP_E_MEMBERNOTFOUND: OSHEET Arguments: |
|()░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|
|░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|
|Error at ...: TOLEAUTO:OSHEET(0) in Module: source\rtl\win32ole.prg░░░░░░░░░░░░░|
|Called from : EXPORT_DAY1(414) in Module: COMM_003.prg░░░░░░░░░░░░░░░░░░░░░░░░░░|
|Called from : EXPORT_DATA(383) in Module: MAIN_000.prg░░░░░░░░░░░░░░░░░░░░░░░░░░|
|Called from : MAIN(213) in Module: MAIN_000.prg░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|
Pasha???






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




Пост N: 2085
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.09.11 09:47. Заголовок: Oskar_AAA пишет: oA..


Oskar_AAA пишет:

 цитата:
oAs:oSheet:Paste() // ошибка
|Error Excel.Application:ACTIVESHEET/3 DISP_E_MEMBERNOTFOUND: OSHEET Arguments: |



Зачем Sheet.Sheet, да ? Масло масляное.

Надо просто
oAs:Paste()

см.help к Excel vba
Или просто запись макросов с их последующим просмотром на предмет изучения.

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



Пост N: 14
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 10:10. Заголовок: Pasha, спасибо.... с..


Pasha, спасибо.... с одним Листом справился.
Остается объем данных в буфере обмена и выделение вставленных ячеек, где-то на форуме были сообщения по этому поводу....

Теперь надо организовать переход на другие DBF отчеты, там обработка и вставка на соответсвующие листы...
в памяти уже загружен Excel файл сводный отчет.
Допустим переход на Лист 2,3,4.... N
Открытие следующего DBF файла - форматирование итд
вставка на листе сводного отчета.
///
///
в конеце - 1 раз запись Сводного Отчета



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




Пост N: 2086
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.09.11 10:55. Заголовок: Oskar_AAA пишет: Те..


Oskar_AAA пишет:

 цитата:
Теперь надо организовать переход на другие DBF отчеты, там обработка и вставка на соответсвующие листы...
в памяти уже загружен Excel файл сводный отчет.
Допустим переход на Лист 2,3,4.... N
Открытие следующего DBF файла - форматирование итд
вставка на листе сводного отчета.
///
///
в конеце - 1 раз запись Сводного Отчета



Ну и.. в чем проблема ? В Sheets задать номер листа, выдать select на нужный дбф

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



Пост N: 15
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 13:25. Заголовок: Pasha, можно я вылож..


Pasha, можно я выложу исходники и задчау в личку?

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




Пост N: 2087
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.09.11 14:27. Заголовок: Тогда уж лучше на фо..


Тогда уж лучше на форуме опубликуйте, больше шансов, что кто-то посмотрит и подскажет

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



Пост N: 16
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.09.11 15:04. Заголовок: „P„‚„y„r„u„„ „r„ѓ„u„..


„P„‚„y„r„u„„ „r„ѓ„u„}!

„I„ѓ„‡„Ђ„t„~„Ќ„z „„„u„{„ѓ„„ „{„Ђ„t„p
Export:={}
Aadd(Export,{"Code_Uprav","C",4,0})
Aadd(Export,{"Name_Uprav","C",20,0})
Aadd(Export,{"Name_Oil","C",10,0})
Aadd(Export,{"Ostat_N_Lt","N",13,2})
Aadd(Export,{"Ostat_N_Kg","N",13,2})
Aadd(Export,{"Prixod_Lt","N",13,2})
Aadd(Export,{"Plotnost","N",13,4})
Aadd(Export,{"Prixod_Kg","N",13,2})
Aadd(Export,{"Rasxod_Lt","N",13,2})
Aadd(Export,{"Rasxod_Kg","N",13,2})
Aadd(Export,{"Ostat_K_Lt","N",13,2})
Aadd(Export,{"Ostat_K_Kg","N",13,2})
Aadd(Export,{"Cena","N",6,2})
Aadd(Export,{"Fakt_N_lt","N",13,2})
Aadd(Export,{"Fakt_N_Kg","N",13,2})
Aadd(Export,{"Fakt_K_Lt","N",13,2})
Aadd(Export,{"Fakt_K_Kg","N",13,2})
Aadd(Export,{"Vdm_Lt","N",13,2})
Aadd(Export,{"Krt_Lt","N",13,2})
Aadd(Export,{"Ala_Lt","N",13,2})
Aadd(Export,{"Fgr_Lt","N",13,2})
Aadd(Export,{"Pro_Lt","N",13,2})
Aadd(Export,{"Kassa","N",13,2})
Aadd(Export,{"Delta_1","N",13,2})
Aadd(Export,{"Delta_2","N",13,2})
Aadd(Export,{"Vdm_Kg","N",13,2})
Aadd(Export,{"Krt_Kg","N",13,2})
Aadd(Export,{"Ala_Kg","N",13,2})
Aadd(Export,{"Fgr_Kg","N",13,2})
Aadd(Export,{"Data1","D",12,0})
Aadd(Export,{"Data2","D",12,0})
Aadd(Export,{"Record","N",12,0})
Aadd(Export,{"Recoil","N",3,0})
File_Ex:='01_Table'
Net_Use(200,(Mar4+File_Ex),'Ex_Dbf',1,1)
Index On Code_Uprav To (Mar4+'01_Table.Cdx')
Set Index To (Mar4+'01_Table.Cdx')
Select OILTYPE
Count To Rc_OilKol For Type_Oil==1
Select DATAGSM
Set Relation To Code_Oil Into OILTYPE
Set Relation To Code_Uprav Into OFFICE Additive
Select OFFICE
Count To Kol_Lc For Type_Uprav==1
Kolf_Ntx:=Kol_Lc
Kolf_Prc:=0
Set Order To 1
Set Filter To Type_Uprav==1
DbGoTop()
Do While !Eof()
Rec_Off:=Recno()
Kode_Uprav:=Code_Uprav
Ip_Movet(Padr('Ѓh„I„„„Ђ„s„Ђ„r„Ќ„z „Ђ„„„‰„u„„ ЃN '+Code_Uprav,69),Dy_15)
Day_Azs1()
Select OFFICE
Set Order To 1
Goto Rec_Off
Skip
Enddo
Set Filter To
Select EX_DBF
Pack
Rc_Export:=Reccount()
Repl All Record With Rc_Export,Recoil With Rc_OilKol
Use
Xls_File:=Mar4+File_Ex
Dbf_File:=Mar4+File_Ex
Xls_Copy:=Mar12+File_Ex
Main_file:=Mar10+'Rpt_Azs'
oExcel :=ToleAuto():New( "Excel.Application" )
oExcel :Visible := .F.
oExcel :Workbooks:Open(Dbf_File)
oRange := oExcel:ActiveCell:SpecialCells(xlLastCell)
cRecno :=oRange:Row
cColumn:=oRange:Column
oExcel:Set( "DisplayAlerts",.F.)
oAs:= oExcel:ActiveSheet()
oAs:Columns(2):Font:Bold := .T.
For J_Rec = 4 To cColumn-4
oAs:Columns(J_Rec):NumberFormat:= "# ##0,00;-0,00;"
Next
oAs:Columns(7):NumberFormat:= "0,0000;;"
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Borders(xlEdgeTop):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Borders(xlEdgeBottom):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,1),oAs:Cells(cRecno,cColumn-4)):Borders(xlEdgeRight):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,1),oAs:Cells(cRecno,cColumn-4)):Borders(xlInsideVertical):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,1),oAs:Cells(cRecno,cColumn-4)):Borders(xlInsideHorizontal):LineStyle:= xlContinuous
For I_Rec = 2 To cRecno
I_Rec1:=I_Rec-1
If I_Rec1/Rc_OilKol-Int(I_Rec1/Rc_OilKol)==0
I_Rec2:=(Int(I_Rec1/Rc_OilKol)-1)*(Rc_OilKol+1)+2
I_Rec3:=Int(I_Rec1/Rc_OilKol)*(Rc_OilKol+1)+1
I_Rec4:=I_Rec3-1
* If I_Rec3<cRecno
oAs:Rows(I_Rec3):Font:Bold:= .T.
oAs:Rows(I_Rec3):Interior:ColorIndex = 6
oAs:Rows(I_Rec3):WrapText = .T.
oAs:Range(oAs:Cells(I_Rec2,2),oAs:Cells(I_Rec4,2)):Merge()
oAs:Range(oAs:Cells(I_Rec2,2),oAs:Cells(I_Rec4,2)):HorizontalAlignment := xlCenter
oAs:Range(oAs:Cells(I_Rec2,2),oAs:Cells(I_Rec4,2)):VerticalAlignment:= xlCenter
* Endif
Endif
Next
oAs:SaveAs(Xls_Copy,Excel97_10)

oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Select()
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Copy()
oExcel:Workbooks:Open(Main_File)
oBook := oExcel:ActiveWorkBook
oSheet:=oBook:Sheets(1)
oAs :=oExcel:ActiveSheet()
oAs:Cells(5,1):Select()
oAs:Paste()
oExcel:CutCopyMode :=.F.
oAs:SaveAs(Main_File,Excel97_10)
oExcel:Set( "DisplayAlerts",.T.)
oExcel:Quit()
Xls_Screen()
******************************
Export:={}
Aadd(Export,{"Code_Uprav","C",4,0})
Aadd(Export,{"Name_Uprav","C",20,0})
Aadd(Export,{"Name_Oil","C",10,0})
Aadd(Export,{"Prixod_Lt","N",13,2})
Aadd(Export,{"Prixod_Kg","N",13,2})
Aadd(Export,{"Rasxod_Lt","N",13,2})
Aadd(Export,{"Rasxod_Kg","N",13,2})
Aadd(Export,{"Vdm_Lt","N",13,2})
Aadd(Export,{"Krt_Lt","N",13,2})
Aadd(Export,{"Ala_Lt","N",13,2})
Aadd(Export,{"Fgr_Lt","N",13,2})
Aadd(Export,{"Ostatok_Lt","N",13,2})
Aadd(Export,{"Ostatok_Kg","N",13,2})
Aadd(Export,{"Kassa","N",13,2})
Aadd(Export,{"Realnms_Lt","N",13,2})
Aadd(Export,{"Realnmk_Kg","N",13,2})
Aadd(Export,{"Kassanm","N",13,2})
File_Ex:='02_Table'
Net_Use(200,(Mar4+File_Ex),'Ex_Dbf',1,1)
Select DATAGSM
Set Relation To Code_Oil Into OILTYPE
Set Relation To Code_Uprav Into OFFICE Additive
Select OFFICE
Set Order To 1
Count To Kol_Lc For Type_Uprav==1
Kolf_Ntx:=Kol_Lc
Kolf_Prc:=0
Set Filter To Type_Uprav==1
DbGoTop()
Do While !Eof()
Rec_Off:=Recno()
Kode_Uprav:=Code_Uprav
Ip_Movet(Padr('Ѓh„Q„p„ѓ„‰„u„„ „x„p „ѓ„…„„„{„y ' +Code_Uprav,69),Dy_15)
Day_Azs2()
Select OFFICE
Set Order To 1
Goto Rec_Off
Skip
Enddo
Set Filter To
Select EX_DBF
Use
///
Xls_File:=Mar4+File_Ex
Dbf_File:=Mar4+File_Ex
Xls_Copy:=Mar12+File_Ex
oExcel :=ToleAuto():New( "Excel.Application" )
oExcel :Visible := .F.
oExcel :Workbooks:Open(Dbf_File)
oRange := oExcel:ActiveCell:SpecialCells(xlLastCell)
cRecno :=oRange:Row
cColumn:=oRange:Column
oExcel:Set( "DisplayAlerts",.F.)
oAs:= oExcel:ActiveSheet()
oAs:Columns(2):Font:Bold := .T.
For J_Rec = 4 To cColumn
oAs:Columns(J_Rec):NumberFormat:= "# ##0,00;-0,00;"
Next
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn)):Borders(xlEdgeTop):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn)):Borders(xlEdgeBottom):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,1),oAs:Cells(cRecno,cColumn)):Borders(xlEdgeRight):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,1),oAs:Cells(cRecno,cColumn)):Borders(xlInsideVertical):LineStyle:= xlContinuous
oAs:Range(oAs:Cells(2,1),oAs:Cells(cRecno,cColumn)):Borders(xlInsideHorizontal):LineStyle:= xlContinuous
For I_Rec = 2 To cRecno
I_Rec1:=I_Rec-1
If I_Rec1/Rc_OilKol-Int(I_Rec1/Rc_OilKol)==0
I_Rec2:=(Int(I_Rec1/Rc_OilKol)-1)*(Rc_OilKol+1)+2
I_Rec3:=Int(I_Rec1/Rc_OilKol)*(Rc_OilKol+1)+1
I_Rec4:=I_Rec3-1
* If I_Rec3<cRecno
oAs:Rows(I_Rec3):Font:Bold:= .T.
oAs:Rows(I_Rec3):Interior:ColorIndex = 6
oAs:Rows(I_Rec3):WrapText = .T.
oAs:Range(oAs:Cells(I_Rec2,2),oAs:Cells(I_Rec4,2)):Merge()
oAs:Range(oAs:Cells(I_Rec2,2),oAs:Cells(I_Rec4,2)):HorizontalAlignment := xlCenter
oAs:Range(oAs:Cells(I_Rec2,2),oAs:Cells(I_Rec4,2)):VerticalAlignment:= xlCenter
* Endif
Endif
Next
oAs:SaveAs(Xls_Copy,Excel97_10)
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn)):Select()
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn)):Copy()
oExcel:Workbooks:Open(Main_File)
oBook := oExcel:ActiveWorkBook
oSheet:=oBook:Sheets(2)
oAs :=oExcel:ActiveSheet()
oAs:Cells(5,1):Select()
oAs:Paste()
oExcel:CutCopyMode :=.F.
oAs:SaveAs(Main_File,Excel97_10)
oExcel:Set( "DisplayAlerts",.T.)
oExcel:Quit()
*Dbf_to_Xls(Mar4+File_Ex,1)
Xls_Screen()

„x„p„t„p„‰„p „ѓ„Ђ„ѓ„„„Ђ„y„„ „r „„„Ђ„} „‰„„„Ђ „‡„Ђ„‰„… „ѓ„t„u„|„p„„„Ћ
1. „O„„„{„‚„Ќ„„„Ћ „O„q„‹„y„z „†„p„z„| „Ђ„„„‰„u„„„p MAIN_FILE „†„Ђ„‚„}„p„„„p XLS, „r „~„u„} „~„u„ѓ„{„Ђ„|„Ћ„{„Ђ „|„y„ѓ„„„Ђ„r, „~„p „{„p„w„t„Ђ„} „ѓ„r„Ђ„‘ „Љ„p„Ѓ„{„p („s„Ђ„„„Ђ„r„Ђ)
2. „Ѓ„‚„Ђ„s„‚„p„}„}„p „†„Ђ„‚„}„y„‚„…„u„„ „|„Ђ„{„p„|„Ћ„~„Ќ„u „†„p„z„|„Ќ „†„Ђ„‚„}„p„„„p DBF „y „Ѓ„u„‚„u„r„Ђ„t„y„„ „y„‡ „r „†„Ђ„‚„}„p„„ XLS „y „x„p„Ѓ„y„ѓ„Ќ„r„p„u„„ „~„p „t„y„ѓ„{ („s„Ђ„„„Ђ„r„Ђ)

„‰„„„Ђ „~„…„w„~„Ђ „ѓ„t„u„|„p„„„Ћ
1. „Ђ„„„{„‚„Ќ„„„Ћ „|„Ђ„{„p„|„Ћ„~„Ќ„z „Ђ„„„‰„u„„ XLS
2. „ѓ„{„Ђ„Ѓ„y„‚„Ђ„r„p„„„Ћ „t„y„p„Ѓ„p„x„Ђ„~ „‘„‰„u„u„{
3. „Ѓ„u„‚„u„z„„„y „~„p „…„{„p„x„p„~„~„Ќ„z „|„y„ѓ„„ „Ђ„„„‰„u„„„p MAIN_FILE
4. „r„ѓ„„„p„r„y„„„Ћ „t„p„~„~„Ќ„u „y„x „|„Ђ„{„p„|„Ћ„~„Ђ„s„Ђ „Ђ„„„‰„u„„„p

„Ѓ„Ђ„r„„„Ђ„‚„y„„„Ћ „Ѓ. 1 - 3 „~„…„w„~„Ђ„u „{„Ђ„|„y„‰„u„ѓ„„„r„Ђ „‚„p„x („ѓ„{„Ђ„|„Ћ„{„Ђ „|„y„ѓ„„„Ђ„r „r „Ђ„„„‰„u„„„u MAIN_FILE)
5. „H„p„Ѓ„y„ѓ„p„„„Ћ „Ђ„„„‰„u„„ MAIN_FILE

„r „Ѓ„‚„y„r„u„t„u„~„~„Ђ„} „Ѓ„‚„y„}„u„‚„u „r „|„y„ѓ„„ 1 „Ђ„„„‰„u„„„p MAIN_FILE „Ѓ„‚„r„y„|„Ћ„~„Ђ „Ѓ„u„‚„u„t„p„ђ„„„ѓ„‘ „t„p„~„~„Ќ„u „|„Ђ„{„p„|„Ћ„~„Ђ„s„Ђ „Ђ„„„‰„u„„„p '01_Table', „r „~„p
„|„y„ѓ„„2 „Ђ„„„‰„u„„„p MAIN_FILE „r„ѓ„„„p„r„|„‘„ђ„„„ѓ„‘ „t„p„~„~„Ќ„u „y„x „|„Ђ„{„p„|„Ћ„~„Ђ„s„Ђ „Ђ„„„‰„u„„„p '01_table' „p „x„p„„„u„} „Ѓ„Ђ„r„u„‚„‡ „~„y„‡ „P„‚„p„r„y„|„Ћ„~„Ќ„u „t„p„~„~„Ќ„u „y„x „|„Ђ„{„p„|„Ћ„~„Ђ„s„Ђ „Ђ„„„‰„u„„„p '02_table'....

„~„u „x„~„p„ђ „{„p„{ „Ђ„‰„y„ѓ„„„y„„„Ћ „q„…„†„u„‚ „Ѓ„Ђ„ѓ„|„u „Ђ„Ѓ„u„‚„p„?„y„y „Ropy() „y Paste()???
„t„…„}„p„ђ „‰„„„Ђ „Ѓ„‚„Ђ„q„|„u„}„p „y„}„u„~„~„Ђ „r „Џ„„„Ђ„}.
„N„Ђ „~„p„t„Ђ „y„x„‘„‹„~„Ђ:
1 .„O„t„y„~ „‚„p„x „Ђ„„„‚„Ќ„„„Ћ „ѓ„r„Ђ„t„~„Ќ„z „Ђ„„„‰„u„„ MAIN_FILE
2. „P„Ђ„ѓ„|„u„t„Ђ„r„p„„„u„|„Ћ„~„Ђ „Ђ„„„{„‚„Ќ„r„p„„„Ћ „|„Ђ„{„p„|„Ћ„~„Ќ„u „Ђ„„„‰„u„„„Ќ Dbf->XLS
3. „B„Ќ„q„y„‚„p„„„Ћ „t„p„~„~„Ќ„u „y„x „|„Ђ„{„p„|„Ћ„~„Ќ„Ђ„s„Ђ „Ђ„„„‰„u„„„p Dbf->XLS
4. „P„u„‚„u„z„„„y „r „ѓ„r„Ђ„t„~„Ќ„z „Ђ„„„‰„u„„ MAIN_FILE
5. „B„Ќ„q„‚„p„„„Ћ „~„…„w„~„Ќ„z „|„y„ѓ„„
6. „B„ѓ„„„p„r„y„„„Ћ „t„p„~„~„Ќ„u „y„x „|„Ђ„{„p„|„Ћ„~„Ђ„s„Ђ „Ђ„„„‰„u„„„p Dbf->XLS
7. „O„‰„y„ѓ„„„y„„„Ћ „q„…„†„u„‚ „Ђ„q„}„u„~„p
„y„„„t „‚„| „Ѓ 2-7
8.„H„p„Ѓ„y„ѓ„p„„„Ћ „ѓ„r„Ђ„t„~„Ќ„z „Ђ„„„‰„u„„ MAIN_FILE
9.„D„u„p„{„„„y„r„y„‚„Ђ„r„p„„„Ћ Excel.

PS. „†„…„~„{„?„y„y DAY_AZS1, DAY_AZS2 - „‚„p„ѓ„‰„u„„ „t„p„~„~„Ќ„‡ „A„D „y „x„p„Ѓ„y„ѓ„Ћ „r „|„Ђ„{„p„|„Ћ„~„…„ђ „A„D








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





Пост N: 54
Зарегистрирован: 22.09.09
ссылка на сообщение  Отправлено: 29.09.11 20:31. Заголовок: Oskar_AAA пишет: „x..


Oskar_AAA пишет:

 цитата:
„x„p„t„p„‰„p „ѓ„Ђ„ѓ„„„Ђ„y„„ „r „„„Ђ„} „‰„„„Ђ „‡„Ђ„‰„… „ѓ„t„u„|„p„„„Ћ
1. „O„„„{„‚„Ќ„„„Ћ „O„q„‹„y„z „†„p„z„| „Ђ„„„‰„u„„„p MAIN_FILE „†„Ђ„‚„}„p„„„p XLS, „r „~„u„} „~„u„ѓ„{„Ђ„|„Ћ„{„Ђ „|„y„ѓ„„„Ђ„r, „~„p „{„p„w„t„Ђ„} „ѓ„r„Ђ„‘ „Љ„p„Ѓ„{„p („s„Ђ„„„Ђ„r„Ђ)
2. „Ѓ„‚„Ђ„s„‚„p„}„}„p „†„Ђ„‚„}„y„‚„…„u„„ „|„Ђ„{„p„|„Ћ„~„Ќ„u „†„p„z„|„Ќ „†„Ђ„‚„}„p„„„p DBF „y „Ѓ„u„‚„u„r„Ђ„t„y„„ „y„‡ „r „†„Ђ„‚„}„p„„ XLS „y „x„p„Ѓ„y„ѓ„Ќ„r„p„u„„ „~„p „t„y„ѓ„{ („s„Ђ„„„Ђ„r„Ђ)



Это на каком языке :))

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



Пост N: 25
Зарегистрирован: 08.02.11
ссылка на сообщение  Отправлено: 30.09.11 01:27. Заголовок: Круто - ни одного ко..


Круто - ни одного комментария. Через неделю сам поймешь что там делается?

Код лучше вставлять в тэгах [ pre ][ /pre ] которые вставляются кнопкой < 123 > (или набрать вручную)
Тогда сохраняются отступы (если они есть в тексте).

Если в тексте есть "[ i ]" (="["+"i"+"]") то нужно заменить на "["+" "+"i"+" "+"]"
т.е. вставить пробелы между скобками и i, т.к. сайт понимает это как тэг перехода на шрифт Italic.

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



Пост N: 17
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.09.11 05:19. Заголовок: Круто написал... на ..


Круто написал... на предпросмотре было ОК...
комметарии к тексту.
1. Проходит обработка БД и создание локальных DBF файлов (01_table, 02_table итд)
2. Преобразование локальных DBF файлов (01_table, 02_table итд) в формат XLS и форматирование ячеек
3.Запись XLS файлов на диск

в текщем коде формирование локальных XLS и их форматирование проходит нормально.

Но хочу сделать следующее:
1.Открыть сводный отчет XLS (Main_File) - в нем 9 Листов, с шапками и прочими атрибутами
2.Открывать локальные XLS файлы (01_table, 02_table .... 09_table)
3.Копировать диапазон ячеек, уже сформатированных
4.Перейти в сводный отчет XLS (Main_File)
5.Установить нужный лист
6.Вставить данные локального отчета XLS
7. Повторить п 2-6 в данном случае 9 раз (01_table, 02_table ..... 09_table)
8.Записать сводный отчет XLS Main_File.

в коде программы есть функции DAY_AZS1, DAY_AZS2 - это обработка основной БД, расчет и ФОРМИРОВАНИЕ выходных локальных DBF
Копирование данных проходит в первом случае (01_table) проходит правильно, при переходе к обработке 02_table и переходе к листу 2 отчета MAIN_FILE происходит копирование данных из 01_table а затем уже из 02_Table....
Вопросы:
Как очистить буфер обмена?
Как организовать последовательный переход между книгами и листами, ранее уже открытыми?

Форумчане , прошу помочь советами...
Сейчас я каждый раз открываю сводный MAIN_FILE, затем открываю локальный 01_table.xls копирую данные и ЗАКРЫВАЮ оба файла, затем снова открываю сводный MAIN_FILE и локальный 02_table.xls.





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



Пост N: 18
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.09.11 05:24. Заголовок: Не понял как организ..


Не понял как организовать тэги, для передачи PRG в явном виде, т.е. с отспупами ?

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




Пост N: 2088
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.11 08:56. Заголовок: Oskar_AAA пишет: Во..


Oskar_AAA пишет:

 цитата:
Вопросы:
Как очистить буфер обмена?
Как организовать последовательный переход между книгами и листами, ранее уже открытыми?



1. hb_gtinfo(HB_GTI_CLIPBOARDDATA, "")

2. oBook:Sheets(n):Select()

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



Пост N: 19
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.09.11 10:24. Заголовок: Pasha, добрый день. ..


Pasha, добрый день.
п.1 консольный xharbour, какая там команда
п.2 можно по нагляднее, подробнее описать
oBook:Sheets(1):Select()
////
oBook1:Sheets(1):Select()Psate()
////


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




Пост N: 2089
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.11 11:12. Заголовок: 1. Эта функция как р..


1. Эта функция как раз для консольного харбора. Надо только включить hbgtinfo.ch

2. oSeet:Select() делает указанный лист активным
Затем в этом листе надо выбрать нужную ячейку, и вызвать для листа метод Paste()
Метод Paste можно вызвать как для активного листа (переменная oAs), так и для произвольного:

oSheet5 := oBook:Sheets(5)
oSheet5:Paste()

или

oBook:Sheets(5):Select()
oAs:Paste()


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



Пост N: 20
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.09.11 11:41. Заголовок: Ошибка Error: Unres..


Ошибка
Error: Unresolved external '_HB_FUN_HB_GETINFO' referenced from COM_003.prg

в начале проги подключаются
# Include 'Command.Ch'
# Include 'Inkey.Ch'
# Include 'Dbedit.Ch'
# Include 'Setcurs.ch'
# Include 'Excel.Ch'
# Include 'Hbgtinfo.Ch'

///
///
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Select()
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Copy()
oExcel :Workbooks:Open(Main_File)
oBook :=oExcel:ActiveWorkBook
oSheet:=oBook :Sheets(1)
oAs :=oExcel:ActiveSheet()
oAs :Cells(5,1):Select()
oAs :Paste()
oAs :=Hb_getInfo(HB_GTI_CLIPBOARDDATA, "")
oExcel:CutCopyMode :=.F.

oAs :=Hb_getInfo(HB_GTI_CLIPBOARDDATA, "") это я правильно записал?


Что дальше?



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




Пост N: 2090
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.11 11:52. Заголовок: Oskar_AAA пишет: Ош..


Oskar_AAA пишет:

 цитата:
Ошибка
Error: Unresolved external '_HB_FUN_HB_GETINFO' referenced from COM_003.prg



Опять очепятка. Надо вызывать функцию hb_gtinfo()

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



Пост N: 21
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.09.11 12:00. Заголовок: oAs :Cells(5,1):Se..


oAs :Cells(5,1):Select()
oAs :Paste()
oAs :Hb_getInfo('')
Error Excel.Application:ACTIVESHEET/3 DISP_E_MEMBERNOTFOUND: HB_GETINFO Arguments: ( [ 1] = Type: C Val: )

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




Пост N: 2091
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.11 12:26. Заголовок: Я два раза написал и..


Я два раза написал имя функции hb_gtinfo(), а Вы упорно пишите зачем-то hb_getinfo
Где я показывал, что hb_gtinfo - это метод обьекта Sheet ? Это функция, и ее надо вызывать так:

Hb_getInfo(HB_GTI_CLIPBOARDDATA, "")

Зачем ее результат присваивать обьекту Sheet ?


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



Пост N: 22
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.09.11 12:42. Заголовок: Pasha, туго мне с эт..


Pasha, туго мне с этим направлением, поэтому мучаю Вас и самому тоскливо...
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Select()
oAs:Range(oAs:Cells(2,2),oAs:Cells(cRecno,cColumn-4)):Copy()
oExcel :Workbooks:Open(Main_File)
oBook :=oExcel:ActiveWorkBook
oSheet:=oBook :Sheets(1)
oAs :=oExcel:ActiveSheet()
oAs :Cells(5,1):Select()
oAs :Paste()
Hb_getInfo(HB_GTI_CLIPBOARDDATA, "")
Все варно ошибка
Error: Unresolved external '_HB_FUN_HB_GETINFO'
Покажи на этом фрагменте как правильно записать....

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




Пост N: 2092
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.11 13:05. Заголовок: hb_gtinfo(HB_GTI_CLI..


hb_gtinfo(HB_GTI_CLIPBOARDDATA, "")


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



Пост N: 23
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.09.11 13:35. Заголовок: Pasha, так и написан..


Pasha, так и написано

hb_gtinfo(HB_GTI_CLIPBOARDDATA, "")

но ошибка то осталась, похоже я точно устал....., может какую-то Lib надо подключить?
Список библиотек, подключаемых при формировании EXE
lang.lib vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfcdx.lib dbffpt.lib common.lib gtwin.lib codepage.lib ct.lib tip.lib pcrepos.lib hsx.lib hbsix.lib zlib.lib debug.lib import32.lib cw32.lib DbfNtx.Lib

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




Пост N: 2093
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.11 13:51. Заголовок: В старых версих xHar..


В старых версих xHarbour эта функция называлась gtinfo()


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



Пост N: 24
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 04.10.11 05:48. Заголовок: „D„Ђ„q„‚„Ќ„z „t„u„~„..


„D„Ђ„q„‚„Ќ„z „t„u„~„Ћ.... „N„u „Ѓ„Ђ„|„…„‰„p„u„„„ѓ„‘ „Ѓ„Ђ„ѓ„|„u„t„Ђ„r„p„„„u„|„Ћ„~„Ђ „Ђ„„„{„‚„Ќ„„„Ћ, „r„Ќ„q„‚„p„„„Ћ „t„y„p„Ѓ„p„x„Ђ„~ „‘„‰„u„u„{ „y„x „Ђ„t„~„Ђ„z „{„~„y„s„y, „ѓ„{„Ђ„Ѓ„y„‚„Ђ„r„p„„„Ћ „y „r„ѓ„„„p„r„y„„„Ћ „r „|„y„ѓ„„ „t„‚„…„s„Ђ„z „{„~„y„s„y... Pasha, Sadstar4, „‰„„„Ђ „~„u „„„p„{ „r „{„Ђ„t„u.
// „ѓ„r„Ђ„t„~„Ќ„z „Ђ„„„‰„u„„ XLS
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 „Ђ„„„‰„u„„
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()
// „Ѓ„u„‚„u„‡„Ђ„t „~„p „ѓ„r„Ђ„t„~„Ќ„z „Ђ„„„‰„u„„
oAs_S:Cells(5,1):Select()
oAs_S:Paste()
Hb_gtInfo(HB_GTI_CLIPBOARDDATA, "")
oExcel:CutCopyMode := .F.
oExcel:Quit()
*oAs_S:SaveAs(Main_File,Excel97_10)
*oExcel_S:Quit()
*Main_File:=Mar10+'Rpt_Azs'
*oExcel_S:=ToleAuto():New("Excel.Application")
*oExcel_S:Workbooks:Open(Main_File)
*oBook_S :=oExcel_S:ActiveWorkBook
// 2 XLS „Ђ„„„‰„u„„
File_Ex:='02_table'
Xls_Copy:=Mar12+File_Ex
oExcel :Workbooks:Open(Xls_Copy)
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()
// „Ѓ„u„‚„u„‡„Ђ„t „~„p „ѓ„r„Ђ„t
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) // „x„p„Ѓ„y„ѓ„Ћ „ѓ„r„Ђ„t„~„Ђ„s„Ђ „Ђ„„„‰„u„„„p
oExcel_S:Quit()

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


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



Пост N: 25
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 04.10.11 07:49. Заголовок: Опять кракозябры......


Опять кракозябры....
Ошибка
Error BASE/1004 Class: 'NIL' has no exported method: CELLS Arguments: ( [ 1] = |
|Type: U [ 2] = Type: N Val: 5 [ 3] = Type: N Val: 1) „
при обработке 2 отчета....
Как написать, что бы не было Кракозябриков?

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



Пост N: 292
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 04.10.11 08:25. Заголовок: Oskar_AAA пишет: Ка..


Oskar_AAA пишет:

 цитата:
Как написать, что бы не было Кракозябриков?


Прикрепить файл.

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



Пост 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 
ПрофильЦитата Ответить
Администратор




Пост N: 2124
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.10.11 11:22. Заголовок: Дык.. как Очень даже..


Дык.. как
Очень даже просто как
Пользователю надо клацнуть на полочке панели задач на харбор-программу, и она получит фокус.

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



Пост N: 43
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 10.10.11 12:16. Заголовок: Хотелось бы без пере..


Хотелось бы без перехода на панель задач.... в программе вызывается Excel, пользоваиель делает то что хочет с данными, записывает файл и закрыает Приложение Excel и переходит обратно в прграмму...

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




Пост N: 2125
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.10.11 12:30. Заголовок: Боюсь, что это невоз..


Боюсь, что это невозможно. Во всяком случае, я не знаю, как это сделать.
Программа как-то должна отследить, что Excel закрыт. Но Excel остается в памяти, пока висит программа. Есть у ms такая фича.
Но зачем все это ? Когда excel закроется, windows и сама передаст фокус на предыдущее окно, т.е харбор-программу.

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




Пост N: 1899
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.10.11 12:34. Заголовок: Oskar_AAA пишет: за..


Oskar_AAA пишет:

 цитата:
записывает файл и закрыает Приложение Excel и переходит обратно в прграмму...


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


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



Пост N: 44
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 10.10.11 13:01. Заголовок: Andrey пишет: наверн..


Andrey пишет:

 цитата:
наверно можно в своей задаче опрашивать в цикле каждую минуту на наличие окна Экселя,


но в памяти может быть загружен Excel совсем не относящийся к моей программе.
Pasha, в том то и дело, что активируется Excel в фоновом режиме и висит в своем окне, а программа продолжает идти дальше по тексту кода, т.е. читает данные из файла XLS и пишет в БД. Хотя Пользователь не ввел необходимые данные....

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




Пост N: 1900
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.10.11 21:23. Заголовок: Oskar_AAA пишет: но..


Oskar_AAA пишет:

 цитата:
но в памяти может быть загружен Excel совсем не относящийся к моей программе.



Тогда бери и определяй окно Excel с заголовком ТВОЕГО файла....
Список процессов можешь получить вот с помощью такой программульки... http://files.mail.ru/OX6T20
А там дальше делай с ним что хочешь....


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




Пост N: 7263
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.11.22 23:43. Заголовок: Опять проблема с раз..


Опять проблема с разными версиями Экселя.
Создаю Dbf в кодировке RU866.
Открываю в экселе и записываю файл в формате XLS.
На версии 2003 работает а на новой 2010 вылетает с такой ошибкой:


Вот код:Скрытый текст

Что можно поправить, чтобы не вылетало ?
Про то что раньше обсуждали - http://clipper.borda.ru/?1-4-0-00001069-000-10001-0-1637697000 - помню !

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




Пост N: 7724
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.12.22 00:14. Заголовок: Найди четырёх ))))))..


Найди четырёх )))))))))

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



Пост N: 157
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 01.12.22 07:14. Заголовок: Добрый день, тоже ра..


Добрый день, тоже раньше были проблемы с версиями MS Excel при SaveAs(Name_Xls, версия MS)
Попробуйте убрать параметр версии MS Excel
замените на SaveAs(Name_Xls)

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




Пост N: 1862
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 01.12.22 11:34. Заголовок: Andrey пишет: Что м..


Andrey пишет:

 цитата:
Что можно поправить, чтобы не вылетало ?


А чего сразу то не писать в формате Excel. Есть как минимум 4 способа работы с этим форматом и два из них вообще не требует Excel на компе.. 5 лет одни и те же грабли, может пора с другой стороны к снаряду подойти?

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



Пост N: 158
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 01.12.22 12:40. Заголовок: Имя файла MS Excel в..


Имя файла MS Excel всегда явно задаю с расширением XLSX и нет проблем ... 2003 сейчас найти трудно. В принципе тип расширения XLS/XLSX можно задать в настройках программы.

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




Пост N: 7725
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.12.22 12:56. Заголовок: oEx:DefaultSaveForma..


oEx:DefaultSaveFormat

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




Пост N: 4096
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.12.22 12:57. Заголовок: Andrey пишет: oBo..


Andrey пишет:

 цитата:
oBook:SaveAs( cFileXls, xlExcel9795 )



это же Excel версии 95 и 97
Зачем ??? Наверное Excel 2003 поддерживает такой древний формат, а 2010 уже нет

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




Пост N: 7264
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.12.22 17:37. Заголовок: Haz пишет: А чего с..


Haz пишет:

 цитата:
А чего сразу то не писать в формате Excel. Есть как минимум 4 способа работы с этим форматом и два из них вообще не требует Excel на компе.. 5 лет одни и те же грабли, может пора с другой стороны к снаряду подойти?


Да по быстрому решил dbf преобразовать в xls, без всяких объектов МиниГуи.
Попытка не удалась !
Переделал пути и имя файла в латиницу - тоже такая же ошибка ....

Dima пишет:

 цитата:
oEx:DefaultSaveFormat


Спасибо ! Попробую.

Oskar_AAA пишет:

 цитата:
замените на SaveAs(Name_Xls)


Это тоже попробую. Спасибо !

Pasha пишет:

 цитата:
это же Excel версии 95 и 97 Зачем ???


Ну не знал... 2003 работал, думал и 2010 будет...

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




Пост N: 1863
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 01.12.22 18:44. Заголовок: Andrey пишет: думал..


Andrey пишет:

 цитата:
думал и 2010 будет...


Даже в 2016 есть поддержка форматов 95 и 97

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




Пост N: 7726
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.12.22 19:19. Заголовок: Haz пишет: Даже в 2..


Haz пишет:

 цитата:
Даже в 2016 есть поддержка форматов 95 и 97


2021 тоже поддерживает :)
линк

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




Пост N: 4097
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.12.22 22:46. Заголовок: Haz пишет: Даже в 2..


Haz пишет:

 цитата:
Даже в 2016 есть поддержка форматов 95 и 97



У меня как раз 2016. Не поленился, прогнал этот пример. Не работает.
Заменил xlExcel9795 на xlExcel8. Работает.
Поддержка может она и есть. Теоретически, в доке. Но вот глючит она выходит

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




Пост N: 1864
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 01.12.22 23:08. Заголовок: Pasha пишет: У меня..


Pasha пишет:

 цитата:
У меня как раз 2016. Не поленился, прогнал этот пример. Не работает.


Потому что при сохранении в 95/97 Excel раз 5 ругается матом про потерю функционала и совместимость. Но при сохранении через OLE эту ругань не видно, видимо это и приводит ошибке при игноре запросов Excel

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




Пост N: 4098
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.12.22 08:25. Заголовок: Ну да, ругается: Дл..


Ну да, ругается:

Для сохранения содержащегося в этом файле проекта VBA в формате Excel 5/0/95 требуется компонент, который в настоящий момент не установлен....

Можно конечно поискать этот компонент, но ЗАЧЕМ???

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




Пост N: 7268
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.22 18:31. Заголовок: oExcel:DefaultSaveFo..


oExcel:DefaultSaveFormat() - не работает.
Сделал так:
 
oBook:SaveAs( cFileXls, xlWorkbookNormal ) // работает в 2003 и в 2016 !!!
DO EVENTS
oExcel:Quit()


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




Пост N: 7728
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.12.22 18:36. Заголовок: Andrey пишет: oExce..


Andrey пишет:

 цитата:
oExcel:DefaultSaveFormat() - не работает.



а скобки зачем притулил ?

Dima пишет:

 цитата:
oEx:DefaultSaveFormat



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




Пост N: 7269
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.12.22 14:51. Заголовок: Dima пишет: а скобк..


Dima пишет:

 цитата:
а скобки зачем притулил ?


Иначе у меня не собирается...

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




Пост N: 7729
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.12.22 18:11. Заголовок: Andrey пишет: Иначе..


Andrey пишет:

 цитата:
Иначе у меня не собирается...


Чекнул , в принципе да , со скобками если , то вернет такой же результат.
У меня вернуло 51 а 51 это
{"xlOpenXMLWorkbook", "Open XML Workbook", ".xlsx"}

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




Пост N: 4101
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 04.12.22 18:38. Заголовок: Не надо морочить гол..


Не надо морочить голову, а просто выдать:

oBook:SaveAs( cFileXls )

Excel сам найдет свой формат

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



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 29.01.23 12:01. Заголовок: Xls в DBF и DBF в Xls - макрос Excel

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

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