Автор | Сообщение |
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: 6727
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.06.20 19:54. Заголовок: Oskar_AAA пишет: Ко..
Oskar_AAA пишет: цитата: | Коллеги, есть ли пример кода запуска LibreOffice под xHarbour? |
| Смотри пример в МиниГуи - :\MiniGUI\SAMPLES\Advanced\Tsb_Export Под хХарбор можно его переделать.
|
|
|
Oskar_AAA
|
| |
Пост N: 130
Зарегистрирован: 09.09.11
|
|
Отправлено: 21.06.20 07:41. Заголовок: Добрый день. Спасиб..
Добрый день. Спасибо
|
|
|
Dima
|
| |
Пост N: 7213
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.07.20 13:53. Заголовок: Pasha пишет: Насчет..
Pasha пишет: цитата: | Насчет админ прав - это мысль, проверю на проблемных компьютерах, где проказник-эксель отказывается работать |
| Сегодня нарвался на ошибку да на ровном месте а ведь все работало :) Оказалось что отвалился принтер по умолчанию (или помог кто то , не было умалчиваемого принтера , хотя был) и штуки вида oSheet:PageSetup........... начали дружно бить ошибки
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6759
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.07.20 15:35. Заголовок: Всем привет ! А как ..
Всем привет ! А как можно записывать свои формулы при создании листа экселя ? Допустим есть такая формула =RC[-13]-RC[-14], при создании листа записываю эту формулу как текст в ячейку. А как потом указать Экселю, что это формула и нужно пересчитать ? Ни разу таким не занимался. А заказчик хочет свои формулы править. Вот и сделал ТСБ с формулами по нужным колонкам, а в экселе идёт вставки ячейки как текст, а нужно как формула.
|
|
|
Pasha
|
| Администратор
|
Пост N: 3964
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.07.20 16:06. Заголовок: А как можно Все что..
Все что делает эксель, можно заставить его делать через ole. А как ? Включить запись макросов, и посмотреть, как он это делает, и сделать так же. На тот случай, когда запись опять сломалась, вместо oRange:Value надо присваивать строку в oRange:Formula
|
|
|
Pasha
|
| Администратор
|
Пост N: 3965
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.07.20 16:07. Заголовок: Dima пишет: Сегодня..
Dima пишет: цитата: | Сегодня нарвался на ошибку да на ровном месте а ведь все работало :) |
| Да, эксель дуреет, если нет принтера, и все, что связано с форматирование страниц, отваливается. Тоже нарывался на такое
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6763
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.07.20 09:27. Заголовок: А можно где то в Экс..
А можно где то в Экселе записать 3-4 значения и чтобы юзер их не мог отредактировать ?
|
|
|
Dima
|
| |
Пост N: 7214
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.07.20 09:53. Заголовок: Andrey пишет: А мож..
Andrey пишет: цитата: | А можно где то в Экселе записать 3-4 значения и чтобы юзер их не мог отредактировать ? |
| Попробуй руками в EXCEL , если получится то можно и в Harbour перенести
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6764
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.07.20 10:04. Заголовок: Так я и спрашиваю, г..
Так я и спрашиваю, где это можно сделать. Есть ли места, где юзер не видит этих данных ? По простому можно наверное сделать на втором листе сразу в первой ячейки, допустим DATE(), вторая ячейка - фио юзера (кто делал отчёт), третья - период расчёта. Можно эти данные сделать белым цветом и юзер их не увидит, а мне в другой проге это нужно будет. Но юзер может тупо удалить второй лист и мои данные "накрылись". Вот и спрашиваю, где можно расположить такие данные, чтобы ОБЫЧНЫЙ юзер не смог исправить такие данные.
|
|
|
Dima
|
| |
Пост N: 7215
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.07.20 10:08. Заголовок: ну можно заблочить к..
ну можно заблочить колонку(и) под пароль и скрыть её
|
|
|
ZAlex
|
| |
Пост N: 46
Зарегистрирован: 22.01.14
|
|
Отправлено: 24.07.20 10:32. Заголовок: информация к размышл..
информация к размышлению: если смотреть свойства файла (закладка Подробно), то можно узнать кто создал и сохранил файл. Но это возможно, если Office зарегистрирован. К тому же , эти данные как-то надо прочесть. (я не знаю как, пока)
|
|
|
|
nick_mi
|
| |
Пост N: 228
Зарегистрирован: 19.05.05
|
|
Отправлено: 24.07.20 14:35. Заголовок: Andrey пишет: А мож..
Andrey пишет: цитата: | А можно где то в Экселе записать 3-4 значения и чтобы юзер их не мог отредактировать |
| В Excel есть защита и листа и защита ячеек на листе, можно воспользоваться
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1591
Зарегистрирован: 27.01.07
|
|
Отправлено: 24.07.20 16:04. Заголовок: Andrey пишет: Можно..
Andrey пишет: цитата: | Можно эти данные сделать белым цветом и юзер их не увидит |
| Ставишь курсор на ячейку и вверху видишь ее содержимое.
|
|
|
Haz
|
| |
Пост N: 1580
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.07.20 20:00. Заголовок: Andrey пишет: А мо..
Andrey пишет: цитата: | А можно где то в Экселе записать 3-4 значения и чтобы юзер их не мог отредактирова |
| Можно, как уже написали , есть стандартные методы защиты ячеек. При записи макроса видно как их использовать , включая работу с паролем на изменение.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6765
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.07.20 21:41. Заголовок: Спасибо всем за отзы..
Спасибо всем за отзывы. Нашёл вроде интересное решение проблемы. Писать данные во второй лист (как обычно он всегда присутствует), а потом его скрыть. Думаю обычный юзер не станет этот лист открывать и тем более удалять.
|
|
|
Dima
|
| |
Пост N: 7216
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.07.20 18:37. Заголовок: Andrey пишет: Думаю..
Andrey пишет: цитата: | Думаю обычный юзер не станет этот лист открывать и тем более удалять. |
| Можно еще проще , писать можно нужные тебе данные ну скажем в строке с номером 10 000 и сделать белым шрифтом на белом фоне. Ни кто и искать не станет
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6766
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.20 18:46. Заголовок: Dima пишет: Можно е..
Dima пишет: цитата: | Можно еще проще , писать можно нужные тебе данные ну скажем в строке с номером 10 000 и сделать белым шрифтом на белом фоне. |
| Это да, так можно. НО !!! попробуй отправить на печать такой лист. Удивишься сколько бумаги уйдёт... Юзер будет просто в ауте.
|
|
|
MIKHAIL
|
| |
Пост N: 271
Зарегистрирован: 05.10.06
|
|
Отправлено: 26.07.20 09:27. Заголовок: Andrey пишет: Нашёл..
Andrey пишет: цитата: | Нашёл вроде интересное решение проблемы. Писать данные во второй лист (как обычно он всегда присутствует), а потом его скрыть. Думаю обычный юзер не станет этот лист открывать и тем более удалять. |
| можно сделать суперскрытый лист, он только через макрос VB может быть открыт
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6770
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.07.20 16:41. Заголовок: Да думаю этого доста..
Да думаю этого достаточно будет для обычного юзера. Для других целей нужны другие подходы. Сделал тест, кому будет интересно: oExcel:WorkBooks:Add() oExcel:Visible := .T. oBook := oExcel:ActiveWorkBook oSheet := oExcel:ActiveSheet() oSheet := oBook:Sheets(2) oSheet:name := "МОЁ_НЕ_ТРОГАТЬ!" // имя листа изменить nCnt := oBook:Sheets:Count // количество листов в книге cMsg := "Количество листов в книге = " + HB_NtoS(nCnt) + ";" FOR EACH oSheet IN oBook:WorkSheets cMsg += oSheet:Name + ";" NEXT cMsg := StrTran(cMsg, ";", CRLF ) MsgInfo(cMsg) oSheet:Cells:Font:Name := "Arial" oSheet:Cells:Font:Size := 12 oSheet:Cells( 3, 1 ):Value := "City:" oSheet:Cells( 3, 2 ):Value := "Moskow" ....... // далее запись во 2 лист oSheet:Visible := .F. // скрыть лист 2 oBook:Sheets(3):Select() // перейдём на 3 лист oSheet := oExcel:ActiveSheet() oSheet:Visible := .F. // скрыть лист 3 oBook:Sheets(1):Select() // вернутся на 1 лист oSheet := oExcel:ActiveSheet() oSheet:name := "Мой_отчёт" // имя листа изменить ........... Исправления и правка приветствуются ! Как считать со скрытого листа, даже ещё и не знаю и не пробовал ....
|
|
|
Dima
|
| |
Пост N: 7218
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.07.20 16:59. Заголовок: Andrey пишет: Как с..
Andrey пишет: цитата: | Как считать со скрытого листа, даже ещё и не знаю и не пробовал .... |
| Да точно так же
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|