Excel. Построить дерево TreeView
Модератор: Naeel Maqsudov
Приветствую!
Все знают и хорошо помнят объект формы TreeView, строящий дерево элементов.
Его можно заполнять только программно, через код VBA.
Есть ли какой-либо готовый объект (готовая программа) для построения дерева в Excel или еще где, который просто конфигурируется каким-либо списком (файлом, массивом), а не в ручную и не программно?
Все знают и хорошо помнят объект формы TreeView, строящий дерево элементов.
Его можно заполнять только программно, через код VBA.
Есть ли какой-либо готовый объект (готовая программа) для построения дерева в Excel или еще где, который просто конфигурируется каким-либо списком (файлом, массивом), а не в ручную и не программно?
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
Я не знаю такого.
- mc-black
- Сообщения: 250
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
Тоже не знаю такого. Но в VBA позволено создавать модули классов (Class Module). Можно один раз написать класс многоразового использования и потом таскать его с собой в любой нужный проект, да еще с исходниками. Как вариант можно попытаться строить TreeView на API, сложность только с hWnd у UserForm. Или создать свой собственный ActiveX Control на VB6 к примеру как оболочку вокруг TreeView. Интересная идея. Никто не хочет потрудиться и сделать свой бесценный вклад в фонд opensource? 

На заказ: VBA, Excel mc-black@yandex.ru
спасибо...
а использование формата xml и его представление в Excel может как решит проблему ?
а использование формата xml и его представление в Excel может как решит проблему ?
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Avsha, не очень понял что вы хотите получить. Конечно можно описать дерево на XML и импортировать его в EXCEL. Но будет ли это удобно?
Не очень понятно в чём суть задачи ? Переносить деревья между компьютерами ?
Само дерево можно и эмулировать на рабочем листе EXCEL...
Возможно вам поможет: http://www.15seconds.com/issue/030827.htm
Не очень понятно в чём суть задачи ? Переносить деревья между компьютерами ?
Само дерево можно и эмулировать на рабочем листе EXCEL...
Возможно вам поможет: http://www.15seconds.com/issue/030827.htm
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Aent, спасибо...
моя задача следующая...
1. Формируем структуру (содержимое) дерева в виде списка в удобном редакторе (например в Excel)
например такого формата...
---------------------------------
01.00.00.0.01,Завод,
01.01.00.0.02,Участок,
01.01.01.1.32,Технологическая схема участка 1,c:\source\file01.jpg
01.01.02.1.32,Технологическая схема участка 2,c:\source\file02.jpg
и т.д.
--------------------------
структура полей:
[01]Раздел / [01]Подраздел / [01]Пункт / [1]Признак выполнения команды операции (0/1) / [00]Номер иконки / [String]Наименование пункта / [String]Команда операции
2. Каким-либо объектом строим дерево по списку, созданным в п.1
первое - для просмотра
второе - для выполнения операции
в простейшем случае объект должен иметь на выходе одну текстовую переменную - выбранную строку определенной команды операции
Можно конечно запрограммировать TreeView,
но думал есть какой-то готовый объект типа календаря,
которому можно подсунуть список структуры в заданном формате , а он уже выдает результат выбранного пункта.
Или как-то преобразовать список, созданный в п.1 в xml, а затем уже просмотреть другим приложением?
моя задача следующая...
1. Формируем структуру (содержимое) дерева в виде списка в удобном редакторе (например в Excel)
например такого формата...
---------------------------------
01.00.00.0.01,Завод,
01.01.00.0.02,Участок,
01.01.01.1.32,Технологическая схема участка 1,c:\source\file01.jpg
01.01.02.1.32,Технологическая схема участка 2,c:\source\file02.jpg
и т.д.
--------------------------
структура полей:
[01]Раздел / [01]Подраздел / [01]Пункт / [1]Признак выполнения команды операции (0/1) / [00]Номер иконки / [String]Наименование пункта / [String]Команда операции
2. Каким-либо объектом строим дерево по списку, созданным в п.1
первое - для просмотра
второе - для выполнения операции
в простейшем случае объект должен иметь на выходе одну текстовую переменную - выбранную строку определенной команды операции
Можно конечно запрограммировать TreeView,
но думал есть какой-то готовый объект типа календаря,
которому можно подсунуть список структуры в заданном формате , а он уже выдает результат выбранного пункта.
Или как-то преобразовать список, созданный в п.1 в xml, а затем уже просмотреть другим приложением?
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
А зачем другое приложение ?
IMHO правильнее сделать обвязку для вашего листа EXCEL:
показывать иконки, скрывать и разворачивать узлы и т.п.
Хотя, если задача состоит в удобном просмотре, то, конечно, можно и генерировать html
см. например:
http://rollerjm.free.fr/pro/Treeview/Treeview.html
http://www.treeview.net/treemenu/3fr_beenthere.html
http://www.artlebedev.ru/tools/technogr ... /treeview/
http://www.codeproject.com/KB/scripting ... eview.aspx
IMHO правильнее сделать обвязку для вашего листа EXCEL:
показывать иконки, скрывать и разворачивать узлы и т.п.
Хотя, если задача состоит в удобном просмотре, то, конечно, можно и генерировать html
см. например:
http://rollerjm.free.fr/pro/Treeview/Treeview.html
http://www.treeview.net/treemenu/3fr_beenthere.html
http://www.artlebedev.ru/tools/technogr ... /treeview/
http://www.codeproject.com/KB/scripting ... eview.aspx
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Aent, спасибо..., что вправили в нужное русло мои фантазии....
Буду делать нормальную обвязку TreeView в среде Excel
тем более какие-то наработки уже есть...
------------------------
Microsoft Windows Common Controls 6.0 (SP6)
C:\WINDOWS\system32\MSCOMCTL.OCX
TreeView
ImageList
-----------------------------
Просто надеялся, что можно набить конфигурацию дерева в Excel,
превратить ее в какой-нибудь универсальный формат данных представления дерева, например xml,
и открыть таким же универсальным и готовым объектом... ;(
Буду делать нормальную обвязку TreeView в среде Excel

------------------------
Microsoft Windows Common Controls 6.0 (SP6)
C:\WINDOWS\system32\MSCOMCTL.OCX
TreeView
ImageList
-----------------------------
Просто надеялся, что можно набить конфигурацию дерева в Excel,
превратить ее в какой-нибудь универсальный формат данных представления дерева, например xml,
и открыть таким же универсальным и готовым объектом... ;(
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Avsha, под "обвязкой" я имел в виду отнюдь не контрол на листе, а добавление к листу со сформированной в Excel структуре дерева необходимой функциональности.
Что же касается
Cоответствующий код получается с помощью XSLT для экспортированного из EXCEL XML файла c данными.
Правда, интуиция подсказывает мне, что вероятно проще будет сразу создавать DHTML из VBA.
Что же касается
То какой объект есть -web броузер, понимающий DHTMLПросто надеялся, что можно набить конфигурацию дерева в Excel,
превратить ее в какой-нибудь универсальный формат данных представления дерева, например xml,
и открыть таким же универсальным и готовым объектом...

Cоответствующий код получается с помощью XSLT для экспортированного из EXCEL XML файла c данными.
Правда, интуиция подсказывает мне, что вероятно проще будет сразу создавать DHTML из VBA.
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Aent,
так если все есть, может приведете небольшой примерчик реализации,
чтобы начать изучение этих, мне непонятных DHTML, XSLT и XML с живого примера
Свою реализацию дерева с помощью формы VBA и объектов TreeView в Excel
собираюсь также привести ...
так если все есть, может приведете небольшой примерчик реализации,
чтобы начать изучение этих, мне непонятных DHTML, XSLT и XML с живого примера

Свою реализацию дерева с помощью формы VBA и объектов TreeView в Excel
собираюсь также привести ...