Вступление
Наш современный мир ориентирован на использование компьютеров. Магазины забиты макулатурой из разряда "Excel - это просто".
Компьютерные курсы активно продвигают МСО (МикроСофт Офис) и обучают работе с ним.
В резюме офисные работники все! указывают на "умение работать" с МСО...
ВОТ он - источник "проблем", и почему - я, ниже, коротко объясню.
После такой активной "накачки" и лозунга от БГ (Била Гейтса) "компьютеризация может помочь каждой домохозяйке", офисный работник начинает являть чудеса в использовании компьютера.
Он (офисный работник) "не без оснований" предполагает, что его деятельность чем-то близка с дизайнером/архитектором проектов/разработчиком (в т.ч. БД/алгоритмов/нетленного кода)
Результат предсказуем: имея под рукой терабайтные (на теперешний момент) виндозные файлопомойки - он захламляет их продуктами своей гениальности...
Сложно вложенные названия каталогов и оригинальные названия файлов (ну ктож ему говорил, что есть мета теги), дублирование информации, отсутствие нормального поиска.
Из моих наблюдений: отдел из 10-и человек создаёт (за два/три года) порядка 20тысяч файлов
Потрясающая цифра - ведь каждый файл МСО содержит стр-ру унутре
Эпос про Word можно прочесть, например, здесь - http://habrahabr.ru/blogs/development/110019/
Обоснование
Цель моего "обращения" не перечислить "ужасы", а "поговорить" об интеграции всего этого богатства с системами документооборота.
Я рассматриваю LDN (Lotus Domino Notes), как платформу (по понятным, "здесь", причинам)
Про Ворд говорить не буду, потому как вопрос сложен -по сей день нет полноценных средств для работы с его сущностями (ситуация, по состоянию на 2014, стала лучше: DOCX + link removed, перенесли на гитхаб) и особенностями (он сам может глючать на своих же файлах)
остаётся (из МСО розлива стандарт) Excel
Для чего его используют:
-как БД
-как средство распространения прайс-листов
-как средство для вычислений
-как сводную таблицу
-как средство масштабируемой печати изображений (есть и такое
)
Все эти фичи, МС старательно туда (в эксель) впихивало/проталкивало/пиарило... Всё это эксель умеет, но... - хуже чем специализированные средства
А с добавлением офисного работника - эксель обретает "невиданную" разрушительную силу.
Т.о. цель - извлечь/передать данные из/в эксель файл и интегрировать их с "системой"
Основным "принятым" методом общения с эксель, среди "наших" коллег, являет использование COM объектов
В тоже время - существуют библиотеки на java и возможность их использования через LS2J
Возможные причины использования COM:
-незнание java
-незнание LS2J
-уверенность в простоте COM
Простота COM условна, работать придется с объектом, описание кот. тщательно размазано по MSDN, хелпу, поисковым запросам в Интернете.
При использование объектов в LS (Lotus Script) придется:
-искать значения констант
-подбирать методы их передачи (нельзя определить по имени опциональные)
-сталкиваться со сложностью отладки
-ограниченность и плохое описание интерфейсов
-скудные, плохо комментированные, примеры (в большинстве, в том числе МСО)
-обилие примеров с ошибками, в виду "распространенности" подхода и кажущейся простоте COM
С другой стороны:
-для использование LS2J, надо прочесть (внимательно) немного информации в хэлпе дизайнера LDN.
-библиотеки для работы с экселем (java) имеют описание (javadoc) АПИ и примеры
-использовать их можно даже не зная java
Применение
Рассмотрю библиотеку http://sourceforge.net/projects/openxls/
Эта библиотека мне показалась достаточно зрелой, примеры использования показательны (они находятся http://sourceforge.net/projects/openxls/fi...6.zip/download)
Кладём jar в jvm/lib/ext/
Ссылаться на "сторонние" библиотеки, напрямую, используя LS2J, нельзя. можно ссылаться на библиотеки, если они к/л образом известны нотусам/домине
Но мы можем "подключить", создав библиотеку java, внутри домино дизайнера
Назовем её OpenXLS
Содержимое следующее:
а можем этого и не делать (опционально - если нам нужна доп. ф-циональность, кот. в LS получить сложно/невозможно, через LS2J)
класс неопределён, в данном случае - не нужно
далее подключение:
обработку ошибок - "добавить по вкусу" 
промежуточные объекты можно сохранять (если необходимо) в переменные типа JavaObject
типа:
как видим отличий в сложности, от COM - мало, в случае с ОСС (Опен Софт Софтваре, OSS) есть плюсы..., библиотеки на java, практически всегда, достаточно хорошо описаны, бесплатно, не требует установки МСО
ЧТД
Акцентирую, ещё раз, внимание - все описания методов и применение - есть в архиве (по ссылке выше) и искать, в разных источниках - нет нужды
Наш современный мир ориентирован на использование компьютеров. Магазины забиты макулатурой из разряда "Excel - это просто".
Компьютерные курсы активно продвигают МСО (МикроСофт Офис) и обучают работе с ним.
В резюме офисные работники все! указывают на "умение работать" с МСО...
ВОТ он - источник "проблем", и почему - я, ниже, коротко объясню.
После такой активной "накачки" и лозунга от БГ (Била Гейтса) "компьютеризация может помочь каждой домохозяйке", офисный работник начинает являть чудеса в использовании компьютера.
Он (офисный работник) "не без оснований" предполагает, что его деятельность чем-то близка с дизайнером/архитектором проектов/разработчиком (в т.ч. БД/алгоритмов/нетленного кода)
Результат предсказуем: имея под рукой терабайтные (на теперешний момент) виндозные файлопомойки - он захламляет их продуктами своей гениальности...
Сложно вложенные названия каталогов и оригинальные названия файлов (ну ктож ему говорил, что есть мета теги), дублирование информации, отсутствие нормального поиска.
Из моих наблюдений: отдел из 10-и человек создаёт (за два/три года) порядка 20тысяч файлов
Потрясающая цифра - ведь каждый файл МСО содержит стр-ру унутре
Эпос про Word можно прочесть, например, здесь - http://habrahabr.ru/blogs/development/110019/
Обоснование
Цель моего "обращения" не перечислить "ужасы", а "поговорить" об интеграции всего этого богатства с системами документооборота.
Я рассматриваю LDN (Lotus Domino Notes), как платформу (по понятным, "здесь", причинам)
Про Ворд говорить не буду, потому как вопрос сложен -
остаётся (из МСО розлива стандарт) Excel
Для чего его используют:
-как БД
-как средство распространения прайс-листов
-как средство для вычислений
-как сводную таблицу
-как средство масштабируемой печати изображений (есть и такое
Все эти фичи, МС старательно туда (в эксель) впихивало/проталкивало/пиарило... Всё это эксель умеет, но... - хуже чем специализированные средства
А с добавлением офисного работника - эксель обретает "невиданную" разрушительную силу.
Т.о. цель - извлечь/передать данные из/в эксель файл и интегрировать их с "системой"
Основным "принятым" методом общения с эксель, среди "наших" коллег, являет использование COM объектов
В тоже время - существуют библиотеки на java и возможность их использования через LS2J
Возможные причины использования COM:
-незнание java
-незнание LS2J
-уверенность в простоте COM
Простота COM условна, работать придется с объектом, описание кот. тщательно размазано по MSDN, хелпу, поисковым запросам в Интернете.
При использование объектов в LS (Lotus Script) придется:
-искать значения констант
-подбирать методы их передачи (нельзя определить по имени опциональные)
-сталкиваться со сложностью отладки
-ограниченность и плохое описание интерфейсов
-скудные, плохо комментированные, примеры (в большинстве, в том числе МСО)
-обилие примеров с ошибками, в виду "распространенности" подхода и кажущейся простоте COM
С другой стороны:
-для использование LS2J, надо прочесть (внимательно) немного информации в хэлпе дизайнера LDN.
-библиотеки для работы с экселем (java) имеют описание (javadoc) АПИ и примеры
-использовать их можно даже не зная java
Применение
Рассмотрю библиотеку http://sourceforge.net/projects/openxls/
Эта библиотека мне показалась достаточно зрелой, примеры использования показательны (они находятся http://sourceforge.net/projects/openxls/fi...6.zip/download)
Кладём jar в jvm/lib/ext/
Но мы можем "подключить", создав библиотеку java, внутри домино дизайнера
Назовем её OpenXLS
Содержимое следующее:
Код:
import com.extentech.toolkit.*;
import com.extentech.ExtenXLS.*;
public class Untitled {
}
класс неопределён, в данном случае - не нужно
далее подключение:
Код:
Option Declare
Use "OpenXLS"
Dim jSession As JavaSession
Dim OpenXLSClass As JavaClass
Dim OpenXLSObj As JavaObject 'WorkBookHandle
Dim sName As String
sName="путь с Excel файлу, включая название файла"
Set jSession= New JAVASESSION
'две строчки, ниже, сложнее в восприятии чем инициализации объекта в КОМ
'но это не так страшно ;)
Set OpenXLSClass = jSession.GetClass("com/extentech/ExtenXLS/WorkBookHandle")
Set OpenXLSObj = OpenXLSClass.CreateObject("(Ljava/lang/String;)V", sName)
Print "Cell string value:" & openXLSObj.getWorkSheet(0).getCell("A2").getStringVal()
промежуточные объекты можно сохранять (если необходимо) в переменные типа JavaObject
типа:
Код:
Dim Sheet As JavaObject
Set Sheet=openXLSObj.getWorkSheet(0)
ЧТД
Акцентирую, ещё раз, внимание - все описания методов и применение - есть в архиве (по ссылке выше) и искать, в разных источниках - нет нужды
Последнее редактирование модератором: