Автор | Сообщение |
Dima
|
| |
Пост N: 2372
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.05.12 16:52. Заголовок: Снова EXCEL
Ранее с Excel из Harbour ни когда не работал. Поставили тут задачу. У некоторых поставщиков есть определенные формы заказов. Набраны они в Excel. Сейчас народ руками заполняет эти формы и шлет по электронке поставщикам. Задача сводится к тому что бы в этих формах находить нужные коды товара и в нужной ячейке проставлять заказ. Может ткнет кто носом с чего начать что бы не напороться на грабли. Спасибо Сами формы тут http://zalil.ru/33279066
|
|
|
Ответов - 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 |
| Нашёл. Спасибо !
|
|
|
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 := ???
|
|
|
Dima
|
| |
Пост N: 5150
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.07.15 09:31. Заголовок: Сделай проще :sm12:..
Сделай проще oSheet:Columns(2):AutoFit()
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4403
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.15 17:37. Заголовок: Dima пишет: Сделай ..
Dima пишет: цитата: | Сделай проще oSheet:Columns(2):AutoFit() |
| Классно ! Работает. Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4406
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.15 20:44. Заголовок: Делаю вывод чисел та..
Делаю вывод чисел так: oSheet:Cells( nLine, nI ):SET( 'NumberFormat', '########0,00' ) // числовая ячейка а для целых чисел какой вывод нужно делать ? И как определить по значению - целое число или дробное ?
|
|
|
Dima
|
| |
Пост N: 5151
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.07.15 21:44. Заголовок: Andrey пишет: а для..
Andrey пишет: цитата: | а для целых чисел какой вывод нужно делать ? |
| гугл ни кто не отменял NumberFormat := '#,##0' ЗЫ // Установим формат целых чисел с разделителем тысяч
|
|
|
Dima
|
| |
Пост N: 5152
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.07.15 21:47. Заголовок: Andrey пишет: И как..
Andrey пишет: цитата: | И как определить по значению - целое число или дробное ? |
| считай , преобразуй в символьную и чекани строку на предмет ".000" если TRUE значит целое. Хотя может в Ёксель что то есть в этом плане. Гуглить надо.
|
|
|
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
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4409
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.07.15 19:48. Заголовок: Сделал прогу, под Ёк..
Сделал прогу, под Ёкселем 2003 - работает нормально. 5 сек. и появляется таблица. У клиента стоит Ёксел 2007, окно не появляется, пока не залезть в Диспетчер задач и не переключиться на "Microsoft Office Excel - проверка совместимости" и в этом дурацком окне нужно нажать кнопку "Продолжить" !!! Блин, юзера выть будут... Погуглил, решения не нашёл. Подскажите пожалуйста решение ? Или отключить в Ёкселе 2007 эту проверку или при создание в ОЛЕ прописать, что файл 2007 версии.
|
|
|
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() )
|
|
|
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 поставить нужно ?
|
|
|
|
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")
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4411
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.07.15 22:02. Заголовок: Ещё нашел такой ключ..
Ещё нашел такой ключ: ActiveWorkbook.CheckCompatibility = False Может его к себе в прогу засунуть ? Dima пишет: цитата: | Функцию для CreateObject( "Excel.Application"+VersEXCEL() ) |
| Пишем с точкой или без точки - "Excel.Application .999" - ? Увидел ответ на свой вопрос... Уже ответил. Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4412
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.07.15 22:18. Заголовок: Dima пишет: ? oExce..
Dima пишет: А как тогда создаем CreateObject("Excel.Application.11"), если версию можем получить после создания объекта ?
|
|
|
Dima
|
| |
Пост N: 5158
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.07.15 22:20. Заголовок: Версию получить нужн..
Версию получить нужно ДО создания. Поищи на форуме что то типа "Excel.Application.11"
|
|
|
Dima
|
| |
Пост N: 5159
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.07.15 22:32. Заголовок: http://clipper.borda..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4413
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.07.15 23:13. Заголовок: Dima пишет: Если ра..
Dima пишет: цитата: | Если разобрался , выкладывай готовую функцию , проверим. |
| Делаю отдельный пример. Как сделаю - выложу !
|
|
|
Dima
|
| |
Пост N: 5160
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.07.15 09:04. Заголовок: Andrey В этой теме ..
Andrey В этой теме посмотри посты номер 4662 , 518
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4416
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.07.15 18:26. Заголовок: Сделал тест. На Exce..
Сделал тест. На Excel 2013 тоже работает без проблем. Поставил в виртуалке 2007. Опять фигня, уже в другом месте: Строка 226 - oExcel:ActiveSheet:PageSetup:Zoom := FALSE Что не нравиться опять 2007 ? Блин, ни одного принтера в виртуалке нет... Как у себя в проге проверить, чтобы не вылетало ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4417
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.07.15 19:14. Заголовок: Нашёл функцию: oExce..
Нашёл функцию: oExcel:ActivePrinter - возвращает "неизвестный принтер (проверте Панель Управления)"
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|