Автор | Сообщение |
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
[только новые]
|
|
Pasha
|
| Администратор
|
Пост N: 3569
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.06.17 10:36. Заголовок: По поводу этого кода..
По поводу этого кода. Оригинальный фрагмент там совсем небольшой: создание двумерного массива, все остальное пришлось копировать из сырцов hbwin и xharbour, так как нужные функции там объявлены как static, и их не вызовешь. Как раз месяц назад в harbour dev list было обсуждение этого вопроса, и есть надежда, что поддержка таких массивов будет добавлена в hbwin. Тогда эта функция станет не нужна. Сейчас ее можно использовать для решения вполне конкретной и ограниченной задачи. Это что-то вроде заплатки.
|
|
|
Pasha
|
| Администратор
|
Пост N: 3573
Зарегистрирован: 23.05.05
|
|
Отправлено: 04.07.17 14:05. Заголовок: Pasha пишет: и есть..
Pasha пишет: цитата: | и есть надежда, что поддержка таких массивов будет добавлена в hbwin. Тогда эта функция станет не нужна. |
| Ну вот, все вопросы в dev list утрясены, и поддержка многомерных массивов Variant добавлена в Harbour. Пример для заполнения диапазона в Excel: // файл из contrib\hbwin #include "hbole.ch" local aSet[nRows, nColumns] // далее надо заполнить двумерный массив со значениями ячеек // и вызвать oRange:Value := __oleVariantNew( WIN_VT_VARIANT, aSet, nRows, nColunms )
|
|
|
Dima
|
| |
Пост N: 6482
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.07.17 16:49. Заголовок: Pasha пишет: Ну вот..
Pasha пишет: цитата: | Ну вот, все вопросы в dev list утрясены, и поддержка многомерных массивов Variant добавлена в Harbour. |
| Спасибо.
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 723
Зарегистрирован: 13.10.05
|
|
Отправлено: 05.07.17 07:28. Заголовок: http://xlslib.source..
http://xlslib.sourceforge.net/index.php What is xlsLib? xlsLib is a multiplatform, a C/C++ library for dynamically generating Excel(TM) files (*.xls format). It allows the generation of these files directly without the need of other assistive software. xlsLib can be used: as a statically linked library. xlsLib can easily be integrated in any C/C++ project. As a dynamically linked library. The classic shared object scheme can be followed for using xlsLib. Последние обновления , кажется 14 годом.
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 724
Зарегистрирован: 13.10.05
|
|
Отправлено: 06.07.17 12:42. Заголовок: Петр Может быть Вы..
Петр Может быть Вы обратили свое внимание на эту библиотеку. Цель - возможность работы с ней в Харбор/ MiniGui
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1542
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.07.17 11:34. Заголовок: Vlad04 пишет: Може..
Vlad04 пишет: цитата: | Может быть Вы обратили свое внимание на эту библиотеку. Цель - возможность работы с ней в Харбор/ MiniGui |
| Честно говоря, я не вижу в этом никакого профита. Активное продвижение формата xls завершилось в 2003 году - 14 лет назад. К тому же, несмотря на заявления, xlsLib типичная C++ библиотека. Использование с harbour (C) возможно, но это довольно сомнительное удовольствие. В MiniGUI есть пример для работы с libxlsxwriter.dll (формат xlsx).
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 725
Зарегистрирован: 13.10.05
|
|
Отправлено: 11.07.17 14:17. Заголовок: Петр Ок, формат не ..
Петр Ок, формат не критичен. К сожалению libxlsxwriter.dll имеет ряд ограничений - она не может читать или изменять существующие файлы! И , наверно, обязательно д.быть установлен Excel
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1543
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.07.17 15:55. Заголовок: Vlad04 пишет: К сож..
Vlad04 пишет: цитата: | К сожалению libxlsxwriter.dll имеет ряд ограничений - она не может читать или изменять существующие файлы! |
|
То же самое можна сказать о xlsLib Vlad04 пишет: цитата: | И , наверно, обязательно д.быть установлен Excel |
|
Нет
|
|
|
Панченко
|
| |
Пост N: 106
Зарегистрирован: 13.06.12
|
|
Отправлено: 22.07.17 22:06. Заголовок: Петр пишет: В MiniG..
Петр пишет: цитата: | В MiniGUI есть пример для работы с libxlsxwriter.dll (формат xlsx). |
| Где лежит? Что-то не нахожу...
|
|
|
Dima
|
| |
Пост N: 6509
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.07.17 12:56. Заголовок: Панченко пишет: Где..
Панченко пишет: цитата: | Где лежит? Что-то не нахожу... |
| C:\MiniGUI\SAMPLES\Advanced\HbXlsxWriter\
|
|
|
Панченко
|
| |
Пост N: 107
Зарегистрирован: 13.06.12
|
|
Отправлено: 24.07.17 12:48. Заголовок: Dima Спасибо. Пере..
Dima Спасибо. Перешел на версию 17.06. Действительно, пример там и лежит :))
|
|
|
|
Панченко
|
| |
Пост N: 108
Зарегистрирован: 13.06.12
|
|
Отправлено: 29.07.17 19:23. Заголовок: Pasha пишет: все во..
Pasha пишет: цитата: | все вопросы в dev list утрясены, и поддержка многомерных массивов Variant добавлена в Harbour. ... oRange:Value := __oleVariantNew( WIN_VT_VARIANT, aSet, nRows, nColunms ) |
| Логичным был бы второй шаг - такое же быстрое заполнение массива значениями oRange:Value. Этот вопрос не поднимается?
|
|
|
Pasha
|
| Администратор
|
Пост N: 3575
Зарегистрирован: 23.05.05
|
|
Отправлено: 02.08.17 12:54. Заголовок: И до этих правок мож..
И до этих правок можно было считать в массив значение Range для диапазона ячеек. Только массив получался с перевернутыми размерностями: сначала столбец, потом строка. Теперь же в массив считываются значения диапазона как положено: [ <строка>, <столбец> ] Никаких дополнительных функций вызывать не надо, просто вызвать: aValues := oRange:Value
|
|
|
Панченко
|
| |
Пост N: 109
Зарегистрирован: 13.06.12
|
|
Отправлено: 03.08.17 17:28. Заголовок: to Pasha Спасибо...
to Pasha Спасибо.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5844
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.04.18 15:32. Заголовок: Pasha пишет: Как уж..
Pasha пишет: цитата: | Как уже отмечалось, харбор не поддерживает создание двумерных массивов Variant, и из-за этого в Excel не получается присвоить значение диапазону ячеек, состоящему из нескольких строк. Приходится присваивать значение построчно, что намного медленнее. Или копировать диапазон через буфер обмена. Это быстро, но сносит форматирование, что тоже не всегда приемлемо. Написал функцию, которая позволяет это делать. Ссылка на функцию с примером: http://my-files.ru/n4n4id |
| Файл удалён. Можно его выложить заново ?
|
|
|
Dima
|
| |
Пост N: 6821
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.04.18 16:02. Заголовок: Andrey пишет: Файл ..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5845
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.04.18 16:32. Заголовок: Спасибо ! :sm36: ..
Спасибо !
|
|
|
Haz
|
| |
Пост N: 1230
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.04.18 23:10. Заголовок: Так оно Пашиными ста..
Так оно Пашиными стараниями уже давно в дистрибутиве харбура. Я пользуюсь без всяких дополнительных функций. Все родное, харбуровское. Или речь не о том?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5849
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.04.18 07:28. Заголовок: Haz пишет: Я пользу..
Haz пишет: цитата: | Я пользуюсь без всяких дополнительных функций. Все родное, харбуровское. Или речь не о том? |
| А есть пример небольшой, демонстрирующий как этим пользоваться ?
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1408
Зарегистрирован: 27.01.07
|
|
Отправлено: 27.04.18 08:23. Заголовок: В файле по ссылке и ..
Andrey пишет: цитата: | А есть пример небольшой, демонстрирующий как этим пользоваться ? |
| В файле по ссылке и есть пример.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|