2014-09-05 2 views
-1

Я ищу хороший дизайн для рамок проверки листа первенствовать Требование, как этоExcel Validation Framework дизайн JAVA

- Will be using Apache POI 
- Have around 500 types of columns (Headers) 
- There will be multiple templates (around 500) 
    in which each template will have a different set of columns. 
- There will be around 1000 - 2000 rows of data and can be viewed in any of the given 
    templates 

Основные валидация для любой ячейки будет как

-. cannot be null , 
-. cannot be zero , 
-. must be a number etc 

Также может быть какая-то проверка бизнеса, например, если присутствует столбец A, тогда также должен быть столбец B и т. Д. Эти бизнес-проверки могут быть связаны как с отдельными столбцами, так и с шаблоном. i.e ячейка A может иметь значение null в шаблоне A, но не может быть null в шаблоне B Таким образом, мы должны иметь возможность переопределить индивидуальную проверку ячейки в шаблоне.

Они не могут быть сохранены в пределах Excel, поскольку любое изменение на валидацию будет скопировано на все шаблоны.

Ищу основы дизайна проверки, в которых эти правила проверки могут храниться централизованно и могут быть изменены, добавлены новые и т.д.

Спасибо за любые направления внушения и т.д.

+0

AFAIK нет такой структуры. Кроме того, когда я работал с проверкой файлов Excel, я закончил загрузку необходимых данных в ОЗУ («Список», «Карта» или другая структура, которая мне помогает) и проверите его там вместо того, чтобы работать с интерфейсом «Workbook» из Apache POI из-за проблем с памятью и временем в библиотеке. –

+0

Даже я не знаю никакой такой структуры, вам нужно создать свою собственную архитектуру, поскольку этот случай специфичен для вашей потребности. Я вижу, что «Шаблон наблюдателя» здесь подходит. – guptakvgaurav

ответ

0

Я должен скажите вам, что вы не найдете (в частности) такую ​​структуру. В настоящее время я занимаюсь почти теми же задачами. Таким образом, в общем то, что вам нужно:

  • Accessor (для файлов Excel) -> org.apache.poi
  • Parser -> можно комбинировать с аксессу если ваше время не хватает, но в целом не очень хорошая идея
  • Validation логика -> реализовать собственную логику
  • Reporter -> вы можете использовать something like this

    Приветствия.

Update:

Я не говорил, что это будет легко. Но на самом деле вы можете повторно использовать там множество библиотек. То, как я вижу это Модуль проверки является самым сложным и затратным временем. Самое главное.

+0

Я нахожусь в процессе создания чего-то в строках того, что вы говорите, но время, затраченное на что-то подобное, превышает продолжительность всего проекта. –

+0

См. Обновления. Надеюсь, поможет – ekostadinov