Pull to refresh

Comments 12

Извинте, но у вас код-лапша…
Может как-то стоило выделить основные моменты:
работа с документом,
работа со страницами,
работа с блоками данных,
работа с типами данных.
Достаточно объяснить это все на простых коротких примерах, чтоб понять преимущество и удобство бибилиотеки.
А для тех, кто заинтересуется — добро пожаловать под спойлер с исходиком.
Отображение такого большого количества кода ни к чему — заключите его хотя бы в спойлеры.
            if (!File.Exists(TemplateFolder + templateName + ".xlsx"))
            {
                throw new Exception(String.Format("Не удалось найти шаблон документа \n\"{0}\"!", TemplateFolder + templateName + ".xlsx"));
            }

Дальше можно и не читать — уровень исполнения вполне понятный (это я про тип генерируемого эксепшена, если кто не понял, хотя и про конкатенацию можно сказать и еще про парочку моментов...).
Да вроде нормально. Разве что стоит заметить, что Path.Combine() наше все :)

Хотя многократное повторение строк вроде TemplateFolder + templateName + ".xlsx" все-же не очень.
Спасибо. Не знал о Path.Combine()
дак вы и про FileNotFoundException поди не знаете… впрочем, как и минусующие мой коммент выше…
Просто это первый мой пост. Если что пишите, исправляйте. Буду учитывать ошибки и исправляться. И исходник выложу.
Это может быть наилучшим решением. Но какой же тоскливый стиль программирования фреймворками.
1. Либо в посте описывается «Я знаю как решить мою проблему при помощи фреймворка F» (о данном посте).
2. Либо «Я придумал как решить мою задачу примитивными средствами»
На что сразу же получаем коммент:
— А вы знаете о существовании фреймворка F?
Сжатое время разработки толкает к собиранию программы из готовых «кирпичиков». Но их очень и очень много, поэтому нужно знать все виды кирпичей фреймворки и быть в курсе, не подох ли очередной «кирпичный завод».
Честно говоря, слабовато.
В свое время делал нечто подобное, там можно было использовать Linq выражения в ячейках (типа: DataObject.SomeArray.First().SomeField и простейшая математика: SomeObject.A + SomeObject.B), колонки могли динамически добавляться, если происходил маппинг на свойство с типом, реализующий IDictionary, да много чего еще было…
Тут конечно, можно сделать много, чего. Наворотить и т.д. Но как я писал в начале, цель была, просто выгружать данные по шаблону, ибо у нас уже был этот функционал ранее и давно работал. Надо было просто уйти от MS Office и уйти так, чтоб не переделывать кучу шаблонов и функционал. И дополнительные фишки в этом функционале не нужны. И когда я искал это, я натыкался на кучу подобных вопросов на форумах. Вот и решил написать решение, для таких же ситуаций как у меня. А кому надо будет, тот уже прикрутит дополнительные вещи, ну или это уже будет темой для нового поста )
Sign up to leave a comment.

Articles