Автор | Сообщение |
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: 6668
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.05.20 19:02. Заголовок: SergKis пишет: Може..
SergKis пишет: цитата: | Можешь формировать дату hb_dtoc( dDate, "yyyy-mm-dd") |
| Отлично ! А тип ячеек менять надо ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3198
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.05.20 19:13. Заголовок: Andrey hb_dtoc(dDat..
Andrey hb_dtoc(dDate, "yyyy-mm-dd") возвращает строку ( как и DtoC(...) ), а второй параметр это шаблон, т.е. SET DATE TO GERMAN и DtoC(dDate) даст dd.mm.yyyy с hb_dtoc() можешь динамически менять формат отображения на выходе строка Что бы не парится,что у клиента на машинах, всегда дату подаю в excel строкой, а бывает, что excel пытается съесть в свой формат, тогда добавляю слева пробел или &npsp;
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3199
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.05.20 19:15. Заголовок: PS правил..
PS правильно букву просмотрел
|
|
|
Pasha
|
| Администратор
|
Пост N: 3946
Зарегистрирован: 23.05.05
|
|
Отправлено: 15.05.20 20:28. Заголовок: Если заглянуть в киш..
Если заглянуть в кишки, то hbole преобразовывает значение типа дата в тип VT_DATE, и передает экселю команду присвоения для Value. Если формат ячейки общий, то эксель, а он же гипер-супер-смарт, то есть умный, может преобразовать формат ячейки в дату, тогда значение отображается правильно. А может не преобразовать, оставить его общим, тогда дата отображается как число. Поэтому лучше формат ячейки указать самому. Можно не текстовый формат, а дату: oCell:NumberFormat := "m/d/yyyy"
|
|
|
Sergy
|
| |
Пост N: 664
Зарегистрирован: 08.07.06
|
|
Отправлено: 15.05.20 23:05. Заголовок: Тоже в свое время на..
Тоже в свое время намучился с датами. И апострофы подставлял, и ячейки форматировал. Всё не то. Потом понял, что Excel хочет видеть дату только так: yyyy/mm/dd Работает на всех версиях Excel и Windows. Плюс форматировать дополнительно ячейки не нужно.
|
|
|
Dima
|
| |
Пост N: 7193
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.05.20 12:06. Заголовок: Sergy пишет: Потом ..
Sergy пишет: цитата: | Потом понял, что Excel хочет видеть дату только так: yyyy/mm/dd |
| Это ты про какой вариант ? oCell:NumberFormat := "yyyy/mm/dd" или hb_dtoc( dDate, "yyyy/mm/dd") ?
|
|
|
Sergy
|
| |
Пост N: 666
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.05.20 23:46. Заголовок: Dima пишет: Это ты ..
Dima пишет: цитата: | Это ты про какой вариант ? oCell:NumberFormat := "yyyy/mm/dd" или hb_dtoc( dDate, "yyyy/mm/dd") ? |
| Про содержимое ячейки: hb_dtoc( dDate, "yyyy/mm/dd") После этого форматировать дополнительно уже редко нужно. Например, если только заголовки столбцов/колонок в специфическом виде, например "янв 20", или "Декабрь 2019"
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6674
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.05.20 10:22. Заголовок: Всем привет ! А как ..
Всем привет ! А как задать показ листа в масштабе 75% ?
|
|
|
Pasha
|
| Администратор
|
Пост N: 3947
Зарегистрирован: 23.05.05
|
|
Отправлено: 18.05.20 10:28. Заголовок: Запись макроса слома..
Запись макроса сломалась ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6675
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.05.20 11:11. Заголовок: Pasha пишет: Запись..
Pasha пишет: цитата: | Запись макроса сломалась ? |
| Да блин разбираться надо, а вдруг уже это кто-то давно решил... У меня в экспорте цвет сломался, пока с этим разбираюсь.
|
|
|
Dima
|
| |
Пост N: 7194
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.05.20 14:11. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как задать показ листа в масштабе 75% ? |
| oExcel:ActiveWindow:Zoom:=88
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6676
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.05.20 18:53. Заголовок: Dima пишет: oExcel:..
Dima пишет: цитата: | oExcel:ActiveWindow:Zoom:=88 |
| СПАСИБО !
|
|
|
Oskar_AAA
|
| |
Пост N: 123
Зарегистрирован: 09.09.11
|
|
Отправлено: 12.06.20 10:24. Заголовок: Добрый день, коллеги..
Добрый день, коллеги. используем: 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) перешли на OC Win10 pro + Excel 365 и нет прав администратора. Программа формирует 500 отчетов в dbf и конвертирует их в Xlsx, затем последовательно собирает их в сводный (511 листов) Excel файл. Программа валится в разных местах (файлах) при конвертации в Xlsx Subsystem Call ....: Excel.Application:ACTIVEWORKBOOK:SHEETS System Code .......: 3 Default Status ....: .F. Description .......: DISP_E_MEMBERNOTFOUND Operation .........: PASTE Arguments .........: Involved File .....: Dos Error Code ....: 0 Trace Through: ---------------- до этого была OC Win8x64+ Excel 2010 и права администратора, ошибки не было, или была очень редко. На ноутбуке OC Win10 pro +Excel 365 и права администратора - проблем нет. ниже пример кода вызов Excel oExcel :=ToleAuto():New("Excel.Application") oExcel_S:=ToleAuto():New("Excel.Application") oExcel :Visible=.F. oExcel :Set("DisplayAlerts",.F.) oExcel :Workbooks:Open(Dbf_File) oBook :=oExcel:ActiveWorkBook oSheet :=oExcel:ActiveSheet 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() // MS Excel и переключение на него oExcel_S:Workbooks:Open(Day_Excel) oExcel_S:Set("DisplayAlerts",.F.) oExcel_S:Visible :=.F. // запуск сводного Excel oBook_S :=oExcel_S:ActiveWorkBook oAs_S :=oExcel_S:ActiveSheet() oSheet_S:=oBook_S :Sheets(1):Select() oSheet_S:=oBook_S :Sheets(1) oSheet_S:Cells(1,1):Value=Hb_OemToAnsi(Ll_Say) oSheet_S:Cells(2,1):Value=Hb_OemToAnsi(Ff_Say) oSheet_S:Cells(2,3):Value=Dtoc(Date())+','+Substr(Time(),1,5) oAs_S:Range(oAs_S:Cells(1,1),oAs_S:Cells(2,8)):Font:Bold:=.T. // сводный Excel oSheet_S:=oBook_S :Sheets(1):Select() oBook_S :=oExcel_S:ActiveWorkBook oAs_S :=oExcel_S:ActiveSheet() oSheet_S:=oBook_S :Sheets(1):Select() oSheet_S:=oBook_S :Sheets(1) oAs_S :Cells(6,1):Select() oSheet_S:Paste() Hb_GtInfo(HB_GTI_CLIPBOARDDATA, "") в чем может быть проблема? ИБ не дают права локального администратора.... На виртуальной станции, там права админа - программа работает корректно (8х64 +Excel2010)
|
|
|
Dima
|
| |
Пост N: 7201
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.06.20 12:56. Заголовок: Oskar_AAA пишет: пе..
Oskar_AAA пишет: цитата: | перешли на OC Win10 pro + Excel 365 и нет прав администратора. |
| А если их временно дать , что то изменится ?
|
|
|
Haz
|
| |
Пост N: 1555
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.06.20 21:22. Заголовок: Переодически ловил н..
Переодически ловил непредсказуемые ошибки при копипасте В OLE. Если просто конвертить dbf в xlsx, забудьте про OLE. Посмотрите на xlsxml. В разы быстрее и не зависит от капризов екселя. ps... 500 отчётов... я бы не выдержал, а ексель вообще уйдёт в
|
|
|
Dima
|
| |
Пост N: 7202
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.20 10:59. Заголовок: Haz пишет: Посмотри..
Haz пишет: Хороший вариант по ходу ЗЫ Сам я пока на него не перешел но где то в далеких планах есть такой переход
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3261
Зарегистрирован: 17.02.12
|
|
Отправлено: 13.06.20 13:04. Заголовок: Dima пишет Сам я пок..
Dima пишет цитата: | Сам я пока на него не перешел но где то в далеких планах есть такой переход |
| У нас, не давно, опять было сообщении об аресте и конфискации парка pc у фирмы, за использование продуктов майкрософт без лицензии (за этим следит созданная спец. организация). Дима, как только ваши депутаты сообразят, что тут клондайк, тоже соорудят такое. Ведь "чем дальше в лес" ES тем больше бабла рубят. Многие имеют в лучшем случае одну лицензию на excel и работают по очереди или openoffice и вариант xlsxml очень удобен, т.к. без ole
|
|
|
Dima
|
| |
Пост N: 7203
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.20 13:07. Заголовок: SergKis пишет: Ведь..
SergKis пишет: цитата: | Ведь "чем дальше в лес" ES тем больше бабла рубят. |
| Да в этот ES , у нас только когда все разворуют , вот тогда может и сообразят..........
|
|
|
rvu
|
| |
Пост N: 255
Зарегистрирован: 05.11.05
|
|
Отправлено: 13.06.20 13:18. Заголовок: Haz пишет: Переодич..
Haz пишет: цитата: | Переодически ловил непредсказуемые ошибки при копипасте В OLE. |
| Я заполнял небольшие таблицы, всё нормально было. А какие ошибки при каких операциях?
|
|
|
Haz
|
| |
Пост N: 1556
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.06.20 13:41. Заголовок: rvu пишет: А какие ..
rvu пишет: цитата: | А какие ошибки при каких операциях? |
| Всё настроишь, все работает и вдруг через год или два валится на pagesetup или printquality это из последних. Часто на формат данных вдруг ругаться начинает. На копи пасте из одного листа в другую книгу, где то на сотом цикле может рухнуть.. Да и в целом очень зависимый механизм от версии офиса. При этом если произошла ошибка эусель как правило зависает в пямяти процессом и срубается только диспетчером тк так его не видно. Но самое нетерпимое это скорость работы этой Оли.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|