Вступление
Наш современный мир ориентирован на использование компьютеров. Магазины забиты макулатурой из разряда "Excel - это просто".
Компьютерные курсы активно продвигают МСО (МикроСофт Офис) и обучают работе с ним.
В резюме офисные работники все! указывают на "умение работать" с МСО...
ВОТ он - источник "проблем", и почему - я, ниже, коротко объясню.
После такой активной "накачки" и лозунга от БГ (Била Гейтса) "компьютеризация может помочь каждой домохозяйке", офисный работник начинает являть чудеса в использовании компьютера.
Он (офисный работник) "не без оснований" предполагает, что его деятельность чем-то близка с дизайнером/архитектором проектов/разработчиком (в т.ч. БД/алгоритмов/нетленного кода)
Результат предсказуем: имея под рукой терабайтные (на теперешний момент) виндозные файлопомойки - он захламляет их продуктами своей гениальности...
Сложно вложенные названия каталогов и оригинальные названия файлов (ну ктож ему говорил, что есть мета теги), дублирование информации, отсутствие нормального поиска.
Из моих наблюдений: отдел из 10-и человек создаёт (за два/три года) порядка 20тысяч файлов
Потрясающая цифра - ведь каждый файл МСО содержит стр-ру унутре
Эпос про Word можно прочесть, например, здесь -
Обоснование
Цель моего "обращения" не перечислить "ужасы", а "поговорить" об интеграции всего этого богатства с системами документооборота.
Я рассматриваю 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
Применение
Рассмотрю библиотеку
Эта библиотека мне показалась достаточно зрелой, примеры использования показательны (они находятся
Кладём jar в jvm/lib/ext/
Ссылаться на "сторонние" библиотеки, напрямую, используя LS2J, нельзя. можно ссылаться на библиотеки, если они к/л образом известны нотусам/домине
Но мы можем "подключить", создав библиотеку java, внутри домино дизайнера
Назовем её OpenXLS
Содержимое следующее:
а можем этого и не делать (опционально - если нам нужна доп. ф-циональность, кот. в LS получить сложно/невозможно, через LS2J)
класс неопределён, в данном случае - не нужно
далее подключение:
обработку ошибок - "добавить по вкусу"
промежуточные объекты можно сохранять (если необходимо) в переменные типа JavaObject
типа:
как видим отличий в сложности, от COM - мало, в случае с ОСС (Опен Софт Софтваре, OSS) есть плюсы..., библиотеки на java, практически всегда, достаточно хорошо описаны, бесплатно, не требует установки МСО
ЧТД
Акцентирую, ещё раз, внимание - все описания методов и применение - есть в архиве (по ссылке выше) и искать, в разных источниках - нет нужды
Наш современный мир ориентирован на использование компьютеров. Магазины забиты макулатурой из разряда "Excel - это просто".
Компьютерные курсы активно продвигают МСО (МикроСофт Офис) и обучают работе с ним.
В резюме офисные работники все! указывают на "умение работать" с МСО...
ВОТ он - источник "проблем", и почему - я, ниже, коротко объясню.
После такой активной "накачки" и лозунга от БГ (Била Гейтса) "компьютеризация может помочь каждой домохозяйке", офисный работник начинает являть чудеса в использовании компьютера.
Он (офисный работник) "не без оснований" предполагает, что его деятельность чем-то близка с дизайнером/архитектором проектов/разработчиком (в т.ч. БД/алгоритмов/нетленного кода)
Результат предсказуем: имея под рукой терабайтные (на теперешний момент) виндозные файлопомойки - он захламляет их продуктами своей гениальности...
Сложно вложенные названия каталогов и оригинальные названия файлов (ну ктож ему говорил, что есть мета теги), дублирование информации, отсутствие нормального поиска.
Из моих наблюдений: отдел из 10-и человек создаёт (за два/три года) порядка 20тысяч файлов
Потрясающая цифра - ведь каждый файл МСО содержит стр-ру унутре
Эпос про Word можно прочесть, например, здесь -
Ссылка скрыта от гостей
Обоснование
Цель моего "обращения" не перечислить "ужасы", а "поговорить" об интеграции всего этого богатства с системами документооборота.
Я рассматриваю LDN (Lotus Domino Notes), как платформу (по понятным, "здесь", причинам)
Про Ворд говорить не буду, потому как вопрос сложен -
остаётся (из МСО розлива стандарт) Excel
Для чего его используют:
-как БД
-как средство распространения прайс-листов
-как средство для вычислений
-как сводную таблицу
-как средство масштабируемой печати изображений (есть и такое )
Все эти фичи, МС старательно туда (в эксель) впихивало/проталкивало/пиарило... Всё это эксель умеет, но... - хуже чем специализированные средства
А с добавлением офисного работника - эксель обретает "невиданную" разрушительную силу.
Т.о. цель - извлечь/передать данные из/в эксель файл и интегрировать их с "системой"
Основным "принятым" методом общения с эксель, среди "наших" коллег, являет использование COM объектов
В тоже время - существуют библиотеки на java и возможность их использования через LS2J
Возможные причины использования COM:
-незнание java
-незнание LS2J
-уверенность в простоте COM
Простота COM условна, работать придется с объектом, описание кот. тщательно размазано по MSDN, хелпу, поисковым запросам в Интернете.
При использование объектов в LS (Lotus Script) придется:
-искать значения констант
-подбирать методы их передачи (нельзя определить по имени опциональные)
-сталкиваться со сложностью отладки
-ограниченность и плохое описание интерфейсов
-скудные, плохо комментированные, примеры (в большинстве, в том числе МСО)
-обилие примеров с ошибками, в виду "распространенности" подхода и кажущейся простоте COM
С другой стороны:
-для использование LS2J, надо прочесть (внимательно) немного информации в хэлпе дизайнера LDN.
-библиотеки для работы с экселем (java) имеют описание (javadoc) АПИ и примеры
-использовать их можно даже не зная java
Применение
Рассмотрю библиотеку
Ссылка скрыта от гостей
Эта библиотека мне показалась достаточно зрелой, примеры использования показательны (они находятся
Ссылка скрыта от гостей
Кладём 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)
ЧТД
Акцентирую, ещё раз, внимание - все описания методов и применение - есть в архиве (по ссылке выше) и искать, в разных источниках - нет нужды
Последнее редактирование модератором: