On-line: Haz, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
администратор




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


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

Спасибо: 0 
ПрофильЦитата Ответить
Новых ответов нет , стр: 1 2 3 All [см. все]


администратор




Пост N: 7673
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.07.22 21:24. Заголовок: Что то не могу найти..


Что то не могу найти на форуме , что бы преобразовывать RC формат к ABCD и тд
То есть имею точные координаты строка и колонка (числа) , нужно преобразовать к формату не RC
Ткните носом плиз

PS
Имею цифры в колонках 1 2 и 3 и в 4 нужно подбить сумму , как это сделать имея лишь
номера колонок и столбцов через СУММ ?

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




Пост N: 4142
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.07.22 22:57. Заголовок: Dima пишет То есть и..


Dima пишет
 цитата:
То есть имею точные координаты строка и колонка (числа) , нужно преобразовать к формату не RC


http://clipper.borda.ru/?1-4-0-00000749-000-180-0
пост 3305

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




Пост N: 7674
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.07.22 08:18. Заголовок: SergKis Спасибо :s..


SergKis
Спасибо

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




Пост N: 4081
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.09.22 09:03. Заголовок: Имеется числовая кол..


Имеется числовая колонка, в ячейках которой может стоять разный формат, например

00000001

или

0000000001

если выбирать oCell:Value, то результат будет одинаковый: 1.00

Можно ли выбрать символьное преставление ячейки, или надо самому выбирать oCell:NumberFormat и дальше его анализировать и самому преобразовывать ?

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




Пост N: 4082
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.09.22 09:37. Заголовок: ага, есть еще свойст..


ага, есть еще свойство Text, там как раз то, что нужно
Жаль, нельзя выбрать Text для Range, как Value, а там надо выбирать тысячи строк, будет мееедленноооо

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




Пост N: 7686
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.09.22 11:27. Заголовок: Range......:NumberFo..


Range......:NumberFormat:="@"
не то ?

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




Пост N: 4083
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.09.22 12:13. Заголовок: Там в столбце 8700 я..


Там в столбце 8700 ячеек, с разными комбинациями NumberFormat
есть
00000000
есть
0000000000
и еще много чего
есть и строковые. Это грубо говоря код предприятия для налогового отчета. Там и физлица, и юрлица, и паспортные данные встречаются, это будут строки, а не числа
Да я уже опрашиваю свойство Text, по скорости намного медленнее будет, но переживут, по другому никак.
Ни NumberFormat, ни Text для Range не возвращает массив как Value

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




Пост N: 4149
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.09.22 12:29. Заголовок: Pasha пишет по друго..


Pasha пишет
 цитата:
по другому никак.


" "+"000000000" // т.е. непрерывный пробел добавляем
или "000000000"+" "
PS
можно
repl("&nbsp;", 10)+<значение строковое>
<значение строковое 1>+repl("&nbsp;", 10)+<значение строковое 2>

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




Пост N: 4084
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.09.22 12:57. Заголовок: У меня противоположн..


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

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




Пост N: 4150
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.09.22 13:50. Заголовок: Можно формировать xm..


Можно формировать xml файл из excel (делает быстро) и читать его, то же быстро и форматы данных от базы, т.е. свои

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




Пост N: 4085
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.10.22 10:47. Заголовок: Передаю объект TBrow..


Передаю объект TBrowse в Excel, имеется колонка типа дата

Делаю:
oCell:Value := d

или oRange:Value := {...}

где в массиве ячейки этого столбца имеют тип Date
NumberFormat не устанавливаю

В это случае Excel сам ставит формат ячейки Дата, и правильно передает и отображает значение

Но у одного заказчика после недавно переустановленного Excel 2010 формат ячейки остается Общий, и значение отображается неправильно - там целое число
Может в Excel есть какая-то настройка, чтобы он устанавливал формат ? С наверное сотнями пользователей с разными версиями Excel от 2003 до 2019 за десятки лет такой проблемы не было, с одним возникло
Может дело в региональных стандартах ? Смотрю в Excel Параметры - Дополнительно - Использовать системные разделители - Галочка стоит.
Непонятно

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




Пост N: 1852
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 12.10.22 11:29. Заголовок: Проверьте что устано..


Проверьте что установлено в стилях ячеек у этого пользователя.
Вкладка главная -> стили -> стили ячеек-> обычный-> правый клик-> изменить.

Ps Однозначно решает вопрос предварительная установка numberformat в ячейки. Для себя отказался от заполнения через ole, гоню выгрузку сначала в XML, а через ole дорисовываю красоту. Продукты микрософт очень любят подсунуть нежданчик на ровном месте.

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




Пост N: 4086
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 20.10.22 13:08. Заголовок: мозги сломал, когда ..


мозги сломал, когда искал, почему

oSheet:Columns(nCol):NumberFormat := "m/d/yyyy"

не работает, хотя запись макросов дает такой именно это.

надо так:

oSheet:Columns(nCol):NumberFormat := "ДД.ММ.ГГГГ"

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




Пост N: 7709
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.22 13:28. Заголовок: Pasha пишет: oSheet..


Pasha пишет:

 цитата:
oSheet:Columns(nCol):NumberFormat := "m/d/yyyy"


а я забил на фиг на такой формат и пишу так
oSheet:Columns(nCol):NumberFormat :="@"
oSheet:Cells( j, a ):Value:=" "+hb_dtoc(i,"DD.MM.YYYY")

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




Пост N: 7764
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.23 17:51. Заголовок: Порча какая с Excel ..


Порча какая то с Excel
Было
 
oSheet:Range(osheet:cells(j,1),osheet:cells(j,4)):NumberFormat:={"@","@", "# ##0.00","# ##0.00"}
Работает


Решил отрицательные числа сделать красным и не пашет , падает Excel
 
oSheet:Range(osheet:cells(j,1),osheet:cells(j,4)):NumberFormat:={"@","@", "# ##0.00;[Red]# ##0.00","# ##0.00;[Red]# ##0.00"}

Как решить вопрос ?

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




Пост N: 7406
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.06.23 03:53. Заголовок: Я в 2015 году делал ..


Я в 2015 году делал вот так.
           // создаём окно ожидания с потоком 
WaitThreadCreate( 'Расчёт и вызов Excel ...' )

// Область с заполненными данными
oRange := oExcel:ActiveCell:SpecialCells( 11 /*xlLastCell*/ )
nRowXls := oRange:Row // Последняя строка
nColXls := oRange:Column // Последний столбец

oSheet:Columns( 1 ):Autofit()

oSheet:Cells[ 1, nRowXls + 1 ]:HorizontalAlignment := 4 // Выравнивание по правому краю ячейки
oSheet:Cells[ 1, nRowXls + 1 ]:Font:ColorIndex := 3 // Шрифт красный
oSheet:Cells[ 1, nRowXls + 1 ] := 'Итого сумма с минусом'
oSheet:Cells[ 1, nRowXls + 2 ]:HorizontalAlignment := 4
oSheet:Cells[ 1, nRowXls + 2 ]:Font:ColorIndex := 5 // Шрифт синий
oSheet:Cells[ 1, nRowXls + 2 ] := 'Итого сумма с плюсом'
oSheet:Cells[ 1, nRowXls + 3 ]:HorizontalAlignment := 4
oSheet:Cells[ 1, nRowXls + 3 ] := 'Итого сумма'

FOR nCol := 2 TO nColXls
xValue := oSheet:Cells( 1, nCol ):Value
IF 'OSTAT' $ xValue .OR. 'DOLG' $ xValue

oSheet:Cells[ nCol, nRowXls + 1 ] := '=СУММЕСЛИ( R[-' + AllTrim( Str( nRowXls-1, 8) ) + ']C:R[-1]C; "<0" )'
oSheet:Cells[ nCol, nRowXls + 1 ]:NumberFormat := '# ##0,00'
oSheet:Cells[ nCol, nRowXls + 1 ]:Font:ColorIndex := 3 // Шрифт красный

oSheet:Cells[ nCol, nRowXls + 2 ] := '=СУММЕСЛИ( R[-' + AllTrim( Str( nRowXls, 8) ) + ']C:R[-2]C; ">0" )'
oSheet:Cells[ nCol, nRowXls + 2 ]:NumberFormat := '# ##0,00'
oSheet:Cells[ nCol, nRowXls + 2 ]:Font:ColorIndex := 5 // Шрифт синий

oSheet:Cells[ nCol, nRowXls + 3 ] := '=СУММ( R[-' + AllTrim( Str( nRowXls+1, 8) ) + ']C:R[-3]C)'
oSheet:Cells[ nCol, nRowXls + 3 ]:NumberFormat := '# ##0,00'

ENDIF
IF 'DATE' $ xValue
oSheet:Columns( nCol ):Autofit()
ENDIF

NEXT

oSheet:Cells[ 2, nRowXls + 4 ]:Select()
oExcel:Visible := .T.

WaitThreadClose() // закрыть окно "ожидания"

hWnd := oExcel:hWnd
ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6
BringWindowToTop( hWnd )


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




Пост N: 7765
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.06.23 14:25. Заголовок: Andrey Это понятно ..


Andrey
Это понятно что и так можно сделать , так и сделал.
Не понятно почему Excel выдав в своем же макросе NumberFormat "# ##0.00;[Red]# ##0.00" ,
отказывается с ним работать через олю в Harbour

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


Пост N: 1645
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 09.06.23 14:50. Заголовок: Вот тут https://supp..


Вот тут https://support.microsoft.com/en-us/office/number-format-codes-5026bbd6-04bc-48cd-bf33-80f18b4eae68
говорят, что надо как-то так:

 цитата:
To indicate that a number format will be applied only if the number meets a condition that you have specified, enclose the condition in square brackets. The condition consists of a comparison operator and a value. For example, the following number format will display numbers that are less than or equal to 100 in a red font and numbers that are greater than 100 in a blue font.
[Red][<=100];[Blue][>100]



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




Пост N: 7766
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.06.23 15:50. Заголовок: PSP Спасибо , побед..


PSP
Спасибо , победить не смог
На удачу сделал так
 
"# ##0.00;[Красный]# ##0.00"

Блин , заработало
Но так делать стрёмно , если у кого English Excel стоит.

PS
По идее в Excel должна быть переключалка языка для макросов , вот только где она живет.......надо поискать

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




Пост N: 7810
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.09.23 14:49. Заголовок: Есть строка в таблиц..


Есть строка в таблице с группировкой , то есть слева от нее крестик , при нажатии на который
раскроется еще скажем 20 строк.
Группировка в строке делалась примерно так
 
oSheet:Range(.........):Select()
WITH OBJECT oExcel:Selection
:Rows:Group()
ENDWITH

Задача вот всю эту строку с группировкой надо бы переместить скажем после 3 строки таблицы Excel
Не пойму как это сделать.
Кто то делал похожее ?

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

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