Время прочтения: 3 мин.
Отчёт – это особая форма представления данных. Он позволяет пользователю познакомиться с отобранными, агрегированными и особо оформленными данными. На сегодняшний день формирование и представление отчетов все еще является актуальной формой доведения до пользователя информации.
В этой статье рассматривается один из способов автоматического формирования отчета в формате файла MS WORD, начиная от непосредственного запроса к данным БД MSSQL и заканчивая его оформлением. В качестве инструментария используется python и модуль docx.
Для начала ознакомимся с используемыми данными. В БД имеются 3 таблицы с данными о товарах, покупателях и продажах.
Для начала нам понадобится импортировать в код необходимые модули:
from docx import Document
import pandas as pd
import pandas.io.sql as psql
import matplotlib.pyplot as plt
from io import BytesIO
import pyodbc
Создаем соединение и формируем запрос. На данном этапе пользователю следует определиться с составом запрашиваемых запросом данных исходя из имеющейся задачи, т.е. на каком этапе производятся расчеты, агрегирование и/или фильтрация данных. В нашем случае будут запрашиваться данные всех продаж с привязкой к ФИО покупателя и данным о товаре. Обработка данных будет производится с помощью модуля pandas.
cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
"Server=S1;"
"Database=test;"
"uid=sa;pwd=pass;"
"Trusted_Connection=yes;")
cursor = cnxn.cursor()
sql = '''select
c.name
,p.*
from [dbo].[sales] s
join [dbo].[customers] c
on c.id = s.customer
join [dbo].[product] p
on s.product = p.id'''
Полученные данные отправляем в dataframe, закрываем соединение
df = psql.read_sql_query(sql,cnxn)
cnxn.close()
del df['id'] # ненужный столбец df
Следующий этап – непосредственно создание документа.
document = Document() # создается объект
# добавляем первый заголовок
document.add_heading('Отчет о продажах', 0)
# добавляем простой текст с переменными из
# данных таблицы (названия магазинов)
shop_list = ', '.join(df['shop'].unique().tolist())
p = document.add_paragraph('Отчет о продажах в магазинах: ')
# к тексту добавим сам список, выделяем жирным шрифтом
p.add_run(shop_list).bold = True
Формируем таблицу о всех продажах – аналог входных данных запроса.
document.add_heading('Общие продажи', level=1) # заголовок
rows, columns = df.shape # размеры dataframe
table = document.add_table(rows=1, cols=columns) # создаем таблицу
table.style = "Colorful List Accent 1" # определяем стиль
# формируем заголовки таблицы
hdr_cells = table.rows[0].cells
for i in range(columns):
hdr_cells[i].text = list(df.columns.values)[i]
# заполняем данными из dataframe
for row in range(rows):
row_cells = table.add_row().cells
row_data = df.iloc[row].tolist()
for column in range(columns):
row_cells[column].text = str(row_data[column])
На выходе получается следующий документ.
Какой же отчет бывает без графиков. Для примера, создадим график затрат в разрезе клиентов.
# заголовок
document.add_heading(' ', 0)
document.add_heading('График общих затрат покупателей', 0)
# пустой объект, куда будет помещен plot
memfile = BytesIO()
fig = plt.figure()
# данные для графика: клиенты и суммы затрат
plt.plot(df.groupby('name')['price'].sum())
fig.savefig(memfile)
document.add_picture(memfile) # размещение в документе
document.save('demo.docx') # публикация в файловой системе
На выходе получаем.
Это далеко не все возможности модуля docx, позволяющие произвести верстку документа «на лету» с использованием данных, взятых непосредственно из БД и агрегированных с помощью Python. Более подробную информацию о верстке, использовании стилей, вставке объектов и т.п. можно ознакомится на сайте разработчиков https://python-docx.readthedocs.io.
Время на прочтение
6 мин
Количество просмотров 19K
Хотя в среднем для каждодневных задач автоматизация не требуется, бывают случаи, когда она может быть необходима. Создание множества диаграмм, рисунков, таблиц и отчётов может утомить, если вы работаете вручную. Так быть не должно. Специально к старту нового потока курса Fullstack-разработчик на Python делимся с вами кейсом постройки конвейера на Python, с помощью которого Excel и Word легко интегрировать: нужно создать таблицы в Excel, а затем перенести результаты в Word, чтобы практически мгновенно получить отчёт.
Openpyxl
Встречайте Openpyxl — возможно, одну из самых универсальных связок [биндингов] с Python, которая сделает взаимодействие с Excel очень простым. Вооружившись этой библиотекой, вы сможете читать и записывать все нынешние и устаревшие форматы Excel, то есть xlsx и xls.
Openpyxl позволяет заполнять строки и столбцы, выполнять формулы, создавать 2D и 3D диаграммы, маркировать оси и заголовки, а также предоставляет множество других возможностей, которые могут пригодиться.
И самое важное — этот пакет позволяет вам перебирать бесконечное количество строк и столбцов в Excel, тем самым избавляя вас от всех этих надоедливых вычислений и построения графиков, которые вам приходилось делать раньше.
Python-docx
Затем идёт Python-docx, этот пакет для Word — то же самое, что Openpyxl для Excel. Если вы ещё не изучили его документацию, вам, вероятно, стоит взглянуть на неё. Python-docx — без преувеличения один из самых простых и понятных мне наборов инструментов, с которыми я работал с тех пор, как начал работать с самим Python.
Python-docx позволяет автоматизировать создание документов путём автоматической вставки текста, заполнения таблиц и рендеринга изображений в отчёт без каких-либо накладных расходов. Без лишних слов давайте создадим наш собственный автоматизированный конвейер. Запустите Anaconda (или любую другую IDE по вашему выбору) и установите эти пакеты:
pip install openpyxl
pip install python-docx
Автоматизация Microsoft Excel
Сначала загрузим уже созданный лист Excel, вот так:
workbook = xl.load_workbook('Book1.xlsx')
sheet_1 = workbook['Sheet1']
Теперь переберём все строки в нашей таблице, чтобы вычислить и вставить значения мощности, умножив ток на напряжение:
for row in range(2, sheet_1.max_row + 1):
current = sheet_1.cell(row, 2)
voltage = sheet_1.cell(row, 3)
power = float(current.value) * float(voltage.value)
power_cell = sheet_1.cell(row, 1)
power_cell.value = power
Как только это будет сделано, мы используем рассчитанные значения мощности, чтобы сгенерировать линейную диаграмму, которая будет вставлена в указанную ячейку, код показан ниже:
values = Reference(sheet_1, min_row = 2, max_row = sheet_1.max_row, min_col = 1, max_col = 1)
chart = LineChart()
chart.y_axis.title = 'Power'
chart.x_axis.title = 'Index'
chart.add_data(values)
sheet_1.add_chart(chart, 'e2')
workbook.save('Book1.xlsx')
Извлечение диаграммы
Теперь, когда мы сгенерировали нашу диаграмму, нам нужно извлечь её как изображение, чтобы мы могли использовать её в нашем отчёте Word. Сначала укажем точное местоположение файла Excel, а также место, где должно быть сохранено изображение диаграммы:
input_file = "C:/Users/.../Book1.xlsx"
output_image = "C:/Users/.../chart.png"
Затем откройте электронную таблицу, используя следующий метод:
operation = win32com.client.Dispatch("Excel.Application")
operation.Visible = 0
operation.DisplayAlerts = 0
workbook_2 = operation.Workbooks.Open(input_file)
sheet_2 = operation.Sheets(1)
Позднее вы сможете перебирать все объекты диаграммы в электронной таблице (если их несколько) и сохранять их в указанном месте:
for x, chart in enumerate(sheet_2.Shapes):
chart.Copy()
image = ImageGrab.grabclipboard()
image.save(output_image, 'png')
pass
workbook_2.Close(True)
operation.Quit()
Автоматизация Microsoft Word
Теперь, когда у нас есть сгенерированное изображение диаграммы, мы должны создать шаблон документа, который в принципе является обычным документом Microsoft Word (.docx), сформированным именно так, как мы хотим: отчёт содержит шрифты, размеры шрифтов, структуру и форматирование страниц.
Теперь всё, что нам нужно сделать, — создать плейсхолдеры для сгенерированного нами контента, то есть табличные значения и изображения, и объявить их с именами переменных, как показано ниже.
Любой сгенерированный контент, включая текст и изображения, может быть объявлен в двойных фигурных скобках {{ variable_name }}. В случае таблиц вам нужно создать таблицу со строкой шаблона со всеми включёнными столбцами, затем нужно добавить одну строку вверху и одну строку ниже со следующей нотацией:
Первая строка:
{%tr for item in variable_name %}
Последняя строка:
{%tr for item in variable_name %}
На рисунке выше — имена переменных:
-
table_contents для словаря Python, в котором будут храниться наши табличные данные;
-
Index для ключей словаря (первый столбец);
-
Power, Current и Voltage для значений словаря (второй, третий и четвёртый столбцы).
Затем импортируем наш шаблонный документ в Python и создаём словарь, в котором будут храниться значения нашей таблицы:
template = DocxTemplate('template.docx')
table_contents = []
for i in range(2, sheet_1.max_row + 1):
table_contents.append({
'Index': i-1,
'Power': sheet_1.cell(i, 1).value,
'Current': sheet_1.cell(i, 2).value,
'Voltage': sheet_1.cell(i, 3).value
})
Далее импортируем ранее созданное в Excel изображение диаграммы и создадим другой словарь для создания экземпляров всех объявленных в документе шаблона переменных-заполнителей:
image = InlineImage(template,'chart.png',Cm(10))
context = {
'title': 'Automated Report',
'day': datetime.datetime.now().strftime('%d'),
'month': datetime.datetime.now().strftime('%b'),
'year': datetime.datetime.now().strftime('%Y'),
'table_contents': table_contents,
'image': image
}
И, наконец, визуализируем отчёт с нашей таблицей значений и изображением диаграммы:
template.render(context)
template.save('Automated_report.docx')
Результаты
И вот — автоматически сгенерированный отчёт Microsoft Word с числами и созданной в Microsoft Excel диаграммой. Мы получили полностью автоматизированный конвейер, его можно использовать, чтобы создать столько таблиц, диаграмм и документов, сколько вам потребуется.
Исходный код
import openpyxl as xl
from openpyxl.chart import LineChart, Reference
import win32com.client
import PIL
from PIL import ImageGrab, Image
import os
import sys
from docx.shared import Cm
from docxtpl import DocxTemplate, InlineImage
from docx.shared import Cm, Inches, Mm, Emu
import random
import datetime
import matplotlib.pyplot as plt
######## Generate automated excel workbook ########
workbook = xl.load_workbook('Book1.xlsx')
sheet_1 = workbook['Sheet1']
for row in range(2, sheet_1.max_row + 1):
current = sheet_1.cell(row, 2)
voltage = sheet_1.cell(row, 3)
power = float(current.value) * float(voltage.value)
power_cell = sheet_1.cell(row, 1)
power_cell.value = power
values = Reference(sheet_1, min_row = 2, max_row = sheet_1.max_row, min_col = 1, max_col = 1)
chart = LineChart()
chart.y_axis.title = 'Power'
chart.x_axis.title = 'Index'
chart.add_data(values)
sheet_1.add_chart(chart, 'e2')
workbook.save('Book1.xlsx')
######## Extract chart image from Excel workbook ########
input_file = "C:/Users/.../Book1.xlsx"
output_image = "C:/Users/.../chart.png"
operation = win32com.client.Dispatch("Excel.Application")
operation.Visible = 0
operation.DisplayAlerts = 0
workbook_2 = operation.Workbooks.Open(input_file)
sheet_2 = operation.Sheets(1)
for x, chart in enumerate(sheet_2.Shapes):
chart.Copy()
image = ImageGrab.grabclipboard()
image.save(output_image, 'png')
pass
workbook_2.Close(True)
operation.Quit()
######## Generating automated word document ########
template = DocxTemplate('template.docx')
#Generate list of random values
table_contents = []
for i in range(2, sheet_1.max_row + 1):
table_contents.append({
'Index': i-1,
'Power': sheet_1.cell(i, 1).value,
'Current': sheet_1.cell(i, 2).value,
'Voltage': sheet_1.cell(i, 3).value
})
#Import saved figure
image = InlineImage(template,'chart.png',Cm(10))
#Declare template variables
context = {
'title': 'Automated Report',
'day': datetime.datetime.now().strftime('%d'),
'month': datetime.datetime.now().strftime('%b'),
'year': datetime.datetime.now().strftime('%Y'),
'table_contents': table_contents,
'image': image
}
#Render automated report
template.render(context)
template.save('Automated_report.docx')
Вот мой репозиторий на GitHub с шаблоном документа и исходным кодом для этого туториала. А вот ссылка на курс Fullstack-разработчик на Python, который сделает из вас настоящего универсального солдата от кодинга.
Узнайте, как прокачаться и в других специальностях или освоить их с нуля:
-
Профессия Data Scientist
-
Профессия Data Analyst
-
Курс по Data Engineering
Другие профессии и курсы
Цель процесса автоматического создания документов
Автоматическое создание документа — базовая единица оптимизации ресурсных затрат Вашей организации. Деятельность любой компании неразрывно связана с документооборотом, будь то управление персоналом — кадровая служба (заявления на отпуск, увольнение, больничный), бухгалтерия, либо же просто формирование определенного пакета документов по той или иной активности компании. Зачастую, сам процесс подготовки документов сводится к монотонным действиям по расстановке конкретных значений по заранее отведенным позициям в шаблоне. Слабыми сторонами данного подхода являются: низкая скорость подготовки документации и высокая степень возникновения ошибки ввиду человеческого фактора. При росте объема документации вероятность ошибки только возрастает, например, Вам нужно подготовить доп соглашения для всего штата сотрудников. Основные задачи программы автоматического создания документов Word на основе шаблонов — свести к минимуму вероятность возникновения ошибок ввода, значительно увеличить скорости самого процесса. Все действия сводятся к выбору записи или записей данных о сотруднике/клиенте/заказе/поставщике из исходной таблицы и указанию шаблона подготавливаемого документа.
Ссылки для скачивания:
— Скачать макрос автоматического создания документов Word по шаблону (архив 208КБ)
Как начать работу с автоматическим формированием документов Word:
1. Разархивируйте скачанный архив с файлом с помощью программы 7zip или WinRar.
2. При появлении сообщения о доверенном источнике: закройте программу, кликните правой кнопкой мыши на файле — «Свойства», далее установите галочку напротив «Разблокировать».
3. Если в Вашем Excel запуск макросов по умолчанию отключен, в данном окне необходимо нажать «Включить содержимое».
4. Для полноценной работы с файлом необходимо нажать «Разрешить редактирование» при появлении данного сообщения.
Автоматическое создание документа — этап 1. Настройка программы
Все действия по настройке макроса и сам процесс построения документов происходят на листе «Настройки», который условно можно разделить на две области: таблица исходных данных и панель кнопочного управления.
Таблица исходных данных состоит из строки меток (условных обозначений каждого столбца) — строка №3, заголовка с названиями столбцов — строка №4 и построчных записей — начиная с 5й строки. Количество колонок, их названия и условные обозначения можно свободно редактировать, соблюдая простые правила:
- Если Вы добавляете новую колонку, у нее должно быть название и условное обозначение.
- Для склонения ФИО сотрудника в Родительный или Дательный падежи используйте встроенные функции =RODP() и =DATP() соответственно.
- Не допускайте наличия пустых колонок (без названий и обозначений) между колонками данных.
- Не удаляйте колонку «ФИО сотрудника», т.к. она является ключевой для работы программы. Вы можете ее переименовать — заказчик, ответственный, клиент, менеджер и т.д. на свое усмотрение. Она используется в процессе сохранения итогового word документа, как часть имени, например: Иванов А.В. Заявление на отпуск, Петров В.К. Накладная на отгрузку.
Также Вы можете разбивать записи таблицы (строки) на группы. Например Вы хотите завести сотрудников по отделам или заказчиков по направлениям деятельности, или городам расположения и т.д..
Панель кнопочного управления автоматизированного создания документов состоит из следующих элементов интерфейса:
- Добавить запись — вставляет новую строку в заранее выбранную вами ячейку. Также можно добавлять записи вручную с помощью стандартной вставки строки excel;
- Добавить группу — вставляет новую серую строку группы в заранее выбранную вами ячейку;
- Удалить элемент — удаляет любую выбранную строку таблицы данных;
- Очистить таблицу — полностью стирает данные из таблицы. Можно использовать для очистки листа от тестовых данных;
- Создать документ — выбор шаблона word для построения документа. Перед этим в таблицы должны быть выбраны записи данных, по которым необходимо произвести построение.
Перед запуском процедуры автоматизированного создания документов убедитесь, что указаны верные пути к word шаблонам и папке сохранения результатов построения!
Автоматическое создание документа — этап 2. Шаблоны Word
Процесс подготовки word шаблонов для автоматического построения документов включает в себя рад несложных действий. Создайте общую папку для всех шаблонов, в ней создайте папки категорий, чтобы разделить шаблоны по областям применения (названия категорий укажите на свое усмотрение). В каждой подпапке определенной категории расположите непосредственно документы word с расставленными метками. Метки расположены в 3й строке таблицы над каждый ее столбцом. Поставьте метки в те места шаблона, в которые вы хотите прокачать данные из определенного столбца. Например, там где должно быть фио сотрудника укажите [fio].
Порядок действий запуска автоматического создания документов
Когда таблица данных заполнена, а метки в шаблонах расставлены по своим местам пора приступать к самой интересной части — автоматизированному формированию документов word.
В первую очередь, выделите строку или диапазон данных таблицы, по которым хотите сформировать документы:
Шаг номер два — нажмите кнопку «Создать документ». Перед Вами появится диалоговое окно, в котором нужно выбрать подпапку — категорию документа и один, либо несколько шаблонов построения. Далее кликните по кнопке «Сформировать документы».
Мои поздравления! Документы успешно сформированы и лежат по указанному Вами пути для сохранения!
Заказать разработку программ или доработку любого проекта
Благодарю Вас за прочтение данной статьи. Надеюсь, что материал подан понятно и я смог ответить на большую часть Ваших вопросов по поводу автоматизации создания документов. Но, как говорится, лучше один раз попробовать, чем сто раз прочитать. Скачивайте программу по ссылке вверху или внизу статьи, в архиве также идет набор тестовых данных, которые содержат как шаблоны, так и заполненную таблицу самого макроса. Просто разархивируйте файлы в любое доступное место и начинайте работу.
Всегда рад ответить на Ваши вопросы, готов подготовить оптимальные решения обработки данных для Вашего бизнеса, автоматизировать рутинные процессы, связаться со мной можно через WatsApp 89507094770, сайт excellab.ru или написать на почту: goryaninov@bk.ru, профиль вк:
Ссылки для скачивания:
— Скачать макрос автоматического создания документов Word по шаблону (архив 208КБ)
Здесь можно ознакомиться с другими программами автоматизации, которые представлены на моем сайте:
— Дневной табель учета рабочего времени в excel
— Почасовой табель учета рабочего времени в excel
— Табель учета рабочего времени в днях по форме Т-13
— Табель расчет и планирование вахты
— Табель учета рабочего времени с учетом ночных смен
— Платежный календарь в excel
В MS Word можно выполнять различные задачи, и далеко не всегда работа в этой программе ограничивается банальным набором или редактированием текста. Так, выполняя в Ворде научно-техническую работу, набирая реферат, диплом или курсовую, делая и оформляя доклад, сложно обойтись без того, что принято называть расчетно-пояснительной запиской (РПЗ). Сама же РПЗ обязательно должна включать оглавления (содержание).
Зачастую, студенты, как и работники тех или иных организаций, сначала оформляют основной текст расчетно-пояснительной записки, добавляя в него основные разделы, подразделы, графическое сопровождение и многое другое. Закончив эту работу, они переходят непосредственно к оформлению содержания созданного проекта. Пользователи, не знающие всех возможностей Microsoft Word, для таких целей начинают выписывать в столбик поочередно названия каждого из разделов, указывают соответствующие им страницы, перепроверяют то, что получилось в результате, нередко что-то корректируя по ходу, и только потом отдают готовый документ преподавателю или начальнику.
Такой подход к оформлению содержания в Ворде хорошо работает лишь с документами небольшого объема, коими могут быть лабораторные или типовые расчеты. Если же документ — это курсовая или дипломная работа, научная диссертация и тому подобное, то соответствующий ему РПЗ будет состоять из нескольких десятков основных разделов и еще большего количества подразделов. Следовательно, оформление содержания столь объемного файла вручную займет довольно много времени, параллельно затратив нервы и силы. Благо, сделать содержание в Word можно и автоматически.
Создание автоматического содержания (оглавления) в Ворде
Самое верное решение — начинать создание любого обширного, большого по объему документа именно с создания содержания. Даже в случае, если у вас еще не написано ни одной строчки текста, потратив всего 5 минут на предварительную настройку MS Word, вы сэкономите себе значительно больше времени и нервов в дальнейшем, направив все усилия и старания исключительно на работу.
1. Открыв Ворд, перейдите на вкладку «Ссылки», расположенную на панели инструментов вверху.
2. Кликните на пункт «Оглавление» (первый слева) и создайте «Автособираемое оглавление».
3. Перед вами появится сообщение о том, что элементы оглавления отсутствуют, что, собственно, не удивительно, ведь вы открыли пустой файл.
Примечание: Дальнейшую «разметку» содержания вы можете делать по ходу набора текста (что более удобно) или по завершению работы (займет заметно больше времени).
Первый автоматический пункт содержания (пустой), который перед вами появился — это и есть ключевое оглавление, под шапкой которого и будут собираться все остальные пункты работы. Желая добавить новый заголовок или подзаголовок, просто установите курсор мышки на нужном месте и кликните по пункту «Добавить текст», расположенному на верхней панели.
Примечание: Вполне логично, что вы можете создавать не только заголовки меньшего уровня, но и основные. Кликните по месту, где вы хотите его разместить, разверните пункт «Добавить текст» на панели управления и выберите «Уровень 1»
Выберете желаемый уровень заголовка: чем больше цифра, тем «глубже» будет этот заголовок.
Чтобы просмотреть содержание документа, а также для быстрой навигации по его содержанию (созданному вами), необходимо перейти во вкладку «Вид» и выбрать режим отображение «Структура».
Весь ваш документ разбит на пункты (заголовки, подзаголовки, текст), каждый из которых имеет свой уровень, предварительно указываемый вами. Отсюда между этими пунктами можно быстро и удобно переключаться.
В начале каждого заголовка есть небольшой синий треугольничек, кликнув по которому, вы можете скрыть (свернуть) весь текст, который относится к этому заголовку.
По ходу написания вами текста созданное в самом начале «Автособираемое оглавление» будет изменяться. В нем будут отображаться не только создаваемые вами заголовки и подзаголовки, но и номера страниц, на которых они начинаются, уровень заголовка тоже будет отображаться визуально.
Это и есть столь необходимое для каждой объемной работы автосодержание, сделать которое в Ворде очень просто. Именно содержание будет находиться в начале вашего документа, как это и требуется для РПЗ.
Автоматически сформированное оглавление (содержание) всегда хорошо выровнено и корректно отформатировано. Собственно, внешний вид заголовков, подзаголовков, как и всего текста всегда можно изменить. Делается это точно так же, как с размером и шрифтом любого другого текста в MS Word.
По ходу выполнения работы автоматическое содержание будет дополняться и расширяться, в нем будут проставляться новые заголовки и номера страниц, а из раздела «Структура» вы всегда сможете получить доступ к необходимой части своей работы, обратиться к нужной главе, вместо того, чтобы пролистывать документ вручную. Стоит отметить, что особенно удобной работа с документом с автосодержанием становится после его экспорта в PDF-файл.
Урок: Как конвертировать PDF в Word
На этом все, теперь вы знаете, как создать автоматическое содержание в Ворде. Стоит отметить, что данная инструкция применима ко всем версиям продукта от Майкрософт, то есть, таким образом можно сделать автоматическое оглавление в ворде 2003, 2007, 2010, 2013, 2016 и любых других версиях этого компонента офисного пакета. Теперь вы знаете немного больше и сможете работать более продуктивно.
IMRY: I’ll Make Reports for You
Описание проекта
IMRY это программа для автоматического создания Word отчетов. Отчеты создаются из шаблонов и конфигурационных файлов.
Шаблон — набор лабораторных и практических работ, в которых указаны название, цель, теоретическая часть, общее задание и индивидуальные задания, выводы.
Установка
>>> СКАЧАТЬ <<<
Для установки программы можно скачать из папки InstallationFiles/Installer/Installer-SetupFiles
файл Installer.exe
, или просто нажать на большую кнопку сверху. При открытии файла запустится стандартный установщик, нужно будет проследовать по всем шагам. После установки программма будет отображаться в списке установленных программ, появится иконка на рабочем столе и в меню «Пуск».
Обновление программы
При выходе новой версии, нужно скачать ее и запустить установщик. Он автоматически обновит файлы до новой версии.
Программу удалять не нужно
Запуск программы
Чтобы запустить программу, можно воспользоваться ярлыком на рабочем столе или в меню «Пуск».
Реализованный функционал
- Создание отчетов
- Создание, сохранение, изменение шаблонов для отчетов
- Сохранение и загрузка информации о студенте
- Переход к папке с отчетами после создания отчета
- Кнопка для быстрого перехода к репозиторию для обновления
- Окно с настройками для изменения главного конфигурационного файла
- Возможность сохранять и загружать введенные данные при генерации отчета
- Автозагрузка сохраненных данных
В разработке
- Возможность создавать отчеты для разных предметов
- Возможность выбирать расширения файлов для добавления при использовании Drag & Drop для каждой работы
Удаление
Для удаления программы можно воспользоваться любым деинсталлятором. Также можно в меню «Пуск» нажать правой кнопкой по иконке приложения, затем «Удалить».
Конфигурирование работы приложения
Работу программы можно конфигурировать, редактируя конфигурационные файлы, изменяя ряд параметров.
Описание конфигурационных файлов
Для работы программы нужен главный конфиругационный файл в папке приложения, который содержит следующие параметры:
Параметры, которые хранят значение
Параметр | Тип данных | Описание параметра |
---|---|---|
ShortSubjectName | string | Расширение, которое используется для сохранения и загрузки данных |
WorkHasTitlePage | bool | Есть ли в работе титульная страница |
WorkHasTitlePageParams | bool | Есть ли в работе в титульнике какие-то параметры |
Параметры, которые хранят путь к файлу
Параметр | Тип данных | Описание параметра | Тип данных в файле |
---|---|---|---|
WorkTitlePageFilePath | string | Путь до файла с титульником (при наличии) | Dictionary<string, string> |
WorkTitlePageParamsFilePath | string | Путь до файл с параметрами для титульника (при наличии) | List<string> |
PermittedDragAndDropExtentionsFilePath | string | Разрешенные расширения файлов при использовании Drag & Drop | List<string> |
CurrentTemplateFilePath | string | Текущий шаблон для работ | Dictionary<string, Dictionary<string, ReportInformation>> ( лучше создавать в программе в пунке меню «Создать шаблон» ) |
UserDataFilePath | string | Путь до файла с информацией о пользователе | StudentInformation ( создается программой ) |
Параметры, которые хранят путь к папке
Параметр | Тип данных | Описание параметра |
---|---|---|
ReportsPath | string | Путь, где будут сохраняться сгенерированные отчеты |
SavedReportsPath | string | Путь, где все отчеты будут сохраняться все введенные данные в отчеты |
Пример главного конфигурационного файла
{ "ShortSubjectName": "java", "WorkHasTitlePage": true, "WorkTitlePageFilePath": "./Subjects/Java/TitlePage.docx", "WorkHasTitlePageParams": true, "WorkTitlePageParamsFilePath": "./Subjects/Java/TitlePageParams.params.json", "PermittedDragAndDropExtentionsFilePath": "./Subjects/Java/PermittedDragAndDropExtentions.extensions.json", "CurrentTemplateFilePath": "./Subjects/Java/JavaTasks.template.json", "ReportsPath": "./Reports/Java", "SavedReportsPath": "./SavedReports/Java" }
При использовании Drag & Drop, программа фильтрует файлы, список разрешенных расширения вынесен в отдельный конфигурационный файл.
Если добавить символ *, программа добавит все файлы без фильтрации
Пример файла с разрешенными расширениями файлов для Drag & Drop
[ "срр", "h", "cs", "java", "py", "asm", "png", "bmp", "jpg", "jpeg", "*" ]
В пустом документе ( *.doc, *.docx ) можно указать ряд параметров, которые будут заменены на значения
!!! Все параметры должны быть вставлены в документ формате {{НазваниеПараметра}}
Таблица параметров
Параметр | Описание | На что будет заменен |
---|---|---|
UserName | ФИО пользователя (полное или инициалы) | Строка (значение формируется из введенных данных |
WorkType | Тип работы | «Практическая работа» / «Лабораторная работа» |
WorkNumber | Номер работы | Число |
WorkName | Полное название работы | Строка ( значение берется из шаблона ) |
TheoryPart | Теоретическая часть работы | Строка ( значение берется из шаблона ) |
WorkTarget | Цель работы | Строка ( значение берется из шаблона ) |
Conclusions | Выводы работы | Строка ( значение берется из шаблона ) |
CommonTask | Общее описание работы | Один или несколько абзацев |
DynamicTasks | Выбранные задания в работе | Один или несколько абзацев |
UserFiles | Файлы, добавленные пользователем | Один или несколько абзацев |
Для титульной страницы существует отдельный конфигурационный файл, в котором можно указать любое количество параметров, в этом файле необходимо указать название параметра и его значение.
Пример конфигурационного файла для титульной страницы
{ "DesciplineName": "«Программирование на Java»", "TeacherName": "Фамилия И. О.", "Departament": "преподаватель кафеды", "City": "Москва", "Year": "2020" }
Добавление изменение работ
Для добавления новых работ в программе в главном меню есть отдельньные кнопки «Создатm шаблон» и «Изменить шаблон»