On-line: Мирослав, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
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: 6668
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.05.20 19:02. Заголовок: SergKis пишет: Може..


SergKis пишет:

 цитата:
Можешь формировать дату hb_dtoc( dDate, "yyyy-mm-dd")


Отлично ! А тип ячеек менять надо ?

Спасибо: 0 
Профиль
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;

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




Пост N: 3199
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.05.20 19:15. Заголовок: PS   правил..


PS
  правильно букву просмотрел

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




Пост N: 3946
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.05.20 20:28. Заголовок: Если заглянуть в киш..


Если заглянуть в кишки, то hbole преобразовывает значение типа дата в тип VT_DATE, и передает экселю команду присвоения для Value.
Если формат ячейки общий, то эксель, а он же гипер-супер-смарт, то есть умный, может преобразовать формат ячейки в дату, тогда значение отображается правильно.
А может не преобразовать, оставить его общим, тогда дата отображается как число.
Поэтому лучше формат ячейки указать самому. Можно не текстовый формат, а дату:

oCell:NumberFormat := "m/d/yyyy"

Спасибо: 0 
Профиль
Sergy





Пост N: 664
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 15.05.20 23:05. Заголовок: Тоже в свое время на..


Тоже в свое время намучился с датами. И апострофы подставлял, и ячейки форматировал. Всё не то.
Потом понял, что Excel хочет видеть дату только так: yyyy/mm/dd

Работает на всех версиях Excel и Windows. Плюс форматировать дополнительно ячейки не нужно.

Спасибо: 0 
Профиль
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")
?

Спасибо: 0 
Профиль
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"

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




Пост N: 6674
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.05.20 10:22. Заголовок: Всем привет ! А как ..


Всем привет !
А как задать показ листа в масштабе 75% ?

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




Пост N: 3947
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.05.20 10:28. Заголовок: Запись макроса слома..


Запись макроса сломалась ?

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




Пост N: 6675
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.05.20 11:11. Заголовок: Pasha пишет: Запись..


Pasha пишет:

 цитата:
Запись макроса сломалась ?


Да блин разбираться надо, а вдруг уже это кто-то давно решил...
У меня в экспорте цвет сломался, пока с этим разбираюсь.

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




Пост N: 7194
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.05.20 14:11. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как задать показ листа в масштабе 75% ?


oExcel:ActiveWindow:Zoom:=88

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




Пост N: 6676
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.05.20 18:53. Заголовок: Dima пишет: oExcel:..


Dima пишет:

 цитата:
oExcel:ActiveWindow:Zoom:=88


СПАСИБО !

Спасибо: 0 
Профиль
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)

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




Пост N: 7201
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.06.20 12:56. Заголовок: Oskar_AAA пишет: пе..


Oskar_AAA пишет:

 цитата:
перешли на OC Win10 pro + Excel 365 и нет прав администратора.


А если их временно дать , что то изменится ?

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




Пост N: 1555
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 12.06.20 21:22. Заголовок: Переодически ловил н..


Переодически ловил непредсказуемые ошибки при копипасте В OLE. Если просто конвертить dbf в xlsx, забудьте про OLE. Посмотрите на xlsxml. В разы быстрее и не зависит от капризов екселя.
ps... 500 отчётов... я бы не выдержал, а ексель вообще уйдёт в

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




Пост N: 7202
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.20 10:59. Заголовок: Haz пишет: Посмотри..


Haz пишет:

 цитата:
Посмотрите на xlsxml


Хороший вариант по ходу

ЗЫ
Сам я пока на него не перешел но где то в далеких планах есть такой переход

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




Пост N: 3261
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.06.20 13:04. Заголовок: Dima пишет Сам я пок..


Dima пишет
 цитата:
Сам я пока на него не перешел но где то в далеких планах есть такой переход


У нас, не давно, опять было сообщении об аресте и конфискации парка pc у фирмы, за использование
продуктов майкрософт без лицензии (за этим следит созданная спец. организация). Дима, как только ваши
депутаты сообразят, что тут клондайк, тоже соорудят такое. Ведь "чем дальше в лес" ES тем больше бабла рубят.
Многие имеют в лучшем случае одну лицензию на excel и работают по очереди или openoffice и вариант xlsxml
очень удобен, т.к. без ole

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




Пост N: 7203
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.20 13:07. Заголовок: SergKis пишет: Ведь..


SergKis пишет:

 цитата:
Ведь "чем дальше в лес" ES тем больше бабла рубят.


Да в этот ES , у нас только когда все разворуют , вот тогда может и сообразят..........

Спасибо: 0 
Профиль
rvu





Пост N: 255
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 13.06.20 13:18. Заголовок: Haz пишет: Переодич..


Haz пишет:

 цитата:
Переодически ловил непредсказуемые ошибки при копипасте В OLE.



Я заполнял небольшие таблицы, всё нормально было. А какие ошибки при каких операциях?

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




Пост N: 1556
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.06.20 13:41. Заголовок: rvu пишет: А какие ..


rvu пишет:

 цитата:
А какие ошибки при каких операциях?


Всё настроишь, все работает и вдруг через год или два валится на pagesetup или printquality это из последних. Часто на формат данных вдруг ругаться начинает. На копи пасте из одного листа в другую книгу, где то на сотом цикле может рухнуть.. Да и в целом очень зависимый механизм от версии офиса. При этом если произошла ошибка эусель как правило зависает в пямяти процессом и срубается только диспетчером тк так его не видно. Но самое нетерпимое это скорость работы этой Оли.

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