On-line: Oskar_AAA, гостей 2. Всего: 3 [подробнее..]
АвторСообщение
Dima
администратор




Пост N: 2372
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.05.12 16:52. Заголовок: Снова EXCEL


Ранее с Excel из Harbour ни когда не работал.
Поставили тут задачу.
У некоторых поставщиков есть определенные формы заказов.
Набраны они в Excel. Сейчас народ руками заполняет эти формы
и шлет по электронке поставщикам.
Задача сводится к тому что бы в этих формах находить
нужные коды товара и в нужной ячейке проставлять заказ.
Может ткнет кто носом с чего начать что бы не напороться на грабли.
Спасибо
Сами формы тут http://zalil.ru/33279066

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


Andrey
постоянный участник




Пост N: 4399
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.07.15 18:33. Заголовок: Dima пишет: А посмо..


Dima пишет:

 цитата:
А посмотри примерчик
\svn\harbour\contrib\hbwin\tests\testole.prg


Нашёл. Спасибо !

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




Пост N: 4401
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.07.15 02:53. Заголовок: Задал фонт на таблиц..


Задал фонт на таблицу:
oSheet:Cells:Font:Name := "Arial"
oSheet:Cells:Font:Size := 15

Как узнать ширину строки заголовка таблицы (например "Кол-во товара") по этому фонту, чтобы установить ширину колонки:
oSheet:columns( 2 ):columnwidth := ???


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5150
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.07.15 09:31. Заголовок: Сделай проще :sm12:..


Сделай проще
oSheet:Columns(2):AutoFit()

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




Пост N: 4403
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.07.15 17:37. Заголовок: Dima пишет: Сделай ..


Dima пишет:

 цитата:
Сделай проще
oSheet:Columns(2):AutoFit()


Классно ! Работает. Спасибо !

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




Пост N: 4406
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.07.15 20:44. Заголовок: Делаю вывод чисел та..


Делаю вывод чисел так:
oSheet:Cells( nLine, nI ):SET( 'NumberFormat', '########0,00' ) // числовая ячейка
а для целых чисел какой вывод нужно делать ?
И как определить по значению - целое число или дробное ?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5151
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.07.15 21:44. Заголовок: Andrey пишет: а для..


Andrey пишет:

 цитата:
а для целых чисел какой вывод нужно делать ?


гугл ни кто не отменял
NumberFormat := '#,##0'

ЗЫ
// Установим формат целых чисел с разделителем тысяч

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5152
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.07.15 21:47. Заголовок: Andrey пишет: И как..


Andrey пишет:

 цитата:
И как определить по значению - целое число или дробное ?


считай , преобразуй в символьную и чекани строку на предмет ".000" если TRUE значит
целое.
Хотя может в Ёксель что то есть в этом плане.
Гуглить надо.

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




Пост N: 4407
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.07.15 00:37. Заголовок: Dima пишет: Хотя мо..


Dima пишет:

 цитата:
Хотя может в Ёксель что то есть в этом плане.
Гуглить надо.


Я это и имел ввиду, что может уже кто знает.
Спасибо, погуглил... Решение то оказывается на поверхности лежит:
IF INT(xValue) == xValue // значит целое число
oSheet:Cells( nLine, nI ):SET( 'NumberFormat', '########0' ) // числовая ячейка
ELSE
oSheet:Cells( nLine, nI ):SET( 'NumberFormat', '########0,00' ) // числовая ячейка
ENDIF


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




Пост N: 4409
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.07.15 19:48. Заголовок: Сделал прогу, под Ёк..


Сделал прогу, под Ёкселем 2003 - работает нормально. 5 сек. и появляется таблица.
У клиента стоит Ёксел 2007, окно не появляется, пока не залезть в Диспетчер задач и не переключиться на "Microsoft Office Excel - проверка совместимости" и в этом дурацком окне нужно нажать кнопку "Продолжить" !!! Блин, юзера выть будут...
Погуглил, решения не нашёл.
Подскажите пожалуйста решение ?
Или отключить в Ёкселе 2007 эту проверку или при создание в ОЛЕ прописать, что файл 2007 версии.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5156
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.07.15 21:29. Заголовок: Начинаешь так ? Crea..


Начинаешь так ?
CreateObject( "Excel.Application" )

Заканчиваешь так ?
oExcel:Visible := .t.

ЗЫ
Вижу...http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=23794
Дело не в этом похоже о чем выше я написал.
Думаю нужно определять активную версию оффиса ну и дописывать цифирки после точки в "Excel.Application.999"
Нужно выложить готовую функцию думаю для проверки версии (100 % работающую) , мне такая была не нужна
так как все сидят на 2003.
Функцию для CreateObject( "Excel.Application"+VersEXCEL() )

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




Пост N: 4410
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.07.15 21:46. Заголовок: Делаю так: oExcel..


Делаю так:
oExcel := TOleAuto():NEW( "Excel.Application" )
oWorkBook := oExcel:WorkBooks:Add()

Dima пишет:

 цитата:
Думаю нужно определять активную версию оффиса ну и дописывать цифирки после точки в "Excel.Application.999"


А какие цифирьки для 2007 поставить нужно ?


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5157
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.07.15 21:54. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А какие цифирьки для 2007 поставить нужно ?


Погугли я точно не помню так как не использую НО они есть.

Где то было на форуме.....лень искать
Гугл :)
' open Excel 2003
Set obj1 = CreateObject("Excel.Application.11")

' open Excel 2007
Set obj2 = CreateObject("Excel.Application.12")


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




Пост N: 4411
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.07.15 22:02. Заголовок: Ещё нашел такой ключ..


Ещё нашел такой ключ:
ActiveWorkbook.CheckCompatibility = False
Может его к себе в прогу засунуть ?

Dima пишет:

 цитата:
Функцию для CreateObject( "Excel.Application"+VersEXCEL() )


Пишем с точкой или без точки - "Excel.Application.999" - ?
Увидел ответ на свой вопрос... Уже ответил. Спасибо !

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




Пост N: 4412
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.07.15 22:18. Заголовок: Dima пишет: ? oExce..


Dima пишет:

 цитата:
? oExcel:Version


А как тогда создаем CreateObject("Excel.Application.11"), если версию можем получить после создания объекта ?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5158
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.07.15 22:20. Заголовок: Версию получить нужн..


Версию получить нужно ДО создания.
Поищи на форуме что то типа "Excel.Application.11"

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5159
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.07.15 22:32. Заголовок: http://clipper.borda..


http://clipper.borda.ru/?1-4-0-00000578-000-0-0-1345918268
Пост 92

Там же твой ответ "спасибо попробую" , но похоже руки не дошли.
Бывает.

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

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




Пост N: 4413
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.07.15 23:13. Заголовок: Dima пишет: Если ра..


Dima пишет:

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


Делаю отдельный пример. Как сделаю - выложу !

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5160
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.07.15 09:04. Заголовок: Andrey В этой теме ..


Andrey
В этой теме посмотри посты номер 4662 , 518

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




Пост N: 4416
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.07.15 18:26. Заголовок: Сделал тест. На Exce..


Сделал тест. На Excel 2013 тоже работает без проблем.
Поставил в виртуалке 2007. Опять фигня, уже в другом месте:


Строка 226 - oExcel:ActiveSheet:PageSetup:Zoom := FALSE
Что не нравиться опять 2007 ?

Блин, ни одного принтера в виртуалке нет...
Как у себя в проге проверить, чтобы не вылетало ?

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




Пост N: 4417
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.07.15 19:14. Заголовок: Нашёл функцию: oExce..


Нашёл функцию:
oExcel:ActivePrinter - возвращает "неизвестный принтер (проверте Панель Управления)"


Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 247
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет