Время прочтения: 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.
Цель процесса автоматического создания документов
Автоматическое создание документа — базовая единица оптимизации ресурсных затрат Вашей организации. Деятельность любой компании неразрывно связана с документооборотом, будь то управление персоналом — кадровая служба (заявления на отпуск, увольнение, больничный), бухгалтерия, либо же просто формирование определенного пакета документов по той или иной активности компании. Зачастую, сам процесс подготовки документов сводится к монотонным действиям по расстановке конкретных значений по заранее отведенным позициям в шаблоне. Слабыми сторонами данного подхода являются: низкая скорость подготовки документации и высокая степень возникновения ошибки ввиду человеческого фактора. При росте объема документации вероятность ошибки только возрастает, например, Вам нужно подготовить доп соглашения для всего штата сотрудников. Основные задачи программы автоматического создания документов 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
Время на прочтение
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
Другие профессии и курсы
В MS Word можно выполнять различные задачи, и далеко не всегда работа в этой программе ограничивается банальным набором или редактированием текста. Так, выполняя в Ворде научно-техническую работу, набирая реферат, диплом или курсовую, делая и оформляя доклад, сложно обойтись без того, что принято называть расчетно-пояснительной запиской (РПЗ). Сама же РПЗ обязательно должна включать оглавления (содержание).
Зачастую, студенты, как и работники тех или иных организаций, сначала оформляют основной текст расчетно-пояснительной записки, добавляя в него основные разделы, подразделы, графическое сопровождение и многое другое. Закончив эту работу, они переходят непосредственно к оформлению содержания созданного проекта. Пользователи, не знающие всех возможностей Microsoft Word, для таких целей начинают выписывать в столбик поочередно названия каждого из разделов, указывают соответствующие им страницы, перепроверяют то, что получилось в результате, нередко что-то корректируя по ходу, и только потом отдают готовый документ преподавателю или начальнику.
Такой подход к оформлению содержания в Ворде хорошо работает лишь с документами небольшого объема, коими могут быть лабораторные или типовые расчеты. Если же документ — это курсовая или дипломная работа, научная диссертация и тому подобное, то соответствующий ему РПЗ будет состоять из нескольких десятков основных разделов и еще большего количества подразделов. Следовательно, оформление содержания столь объемного файла вручную займет довольно много времени, параллельно затратив нервы и силы. Благо, сделать содержание в Word можно и автоматически.
Создание автоматического содержания (оглавления) в Ворде
Самое верное решение — начинать создание любого обширного, большого по объему документа именно с создания содержания. Даже в случае, если у вас еще не написано ни одной строчки текста, потратив всего 5 минут на предварительную настройку MS Word, вы сэкономите себе значительно больше времени и нервов в дальнейшем, направив все усилия и старания исключительно на работу.
1. Открыв Ворд, перейдите на вкладку «Ссылки», расположенную на панели инструментов вверху.
2. Кликните на пункт «Оглавление» (первый слева) и создайте «Автособираемое оглавление».
3. Перед вами появится сообщение о том, что элементы оглавления отсутствуют, что, собственно, не удивительно, ведь вы открыли пустой файл.
Примечание: Дальнейшую «разметку» содержания вы можете делать по ходу набора текста (что более удобно) или по завершению работы (займет заметно больше времени).
Первый автоматический пункт содержания (пустой), который перед вами появился — это и есть ключевое оглавление, под шапкой которого и будут собираться все остальные пункты работы. Желая добавить новый заголовок или подзаголовок, просто установите курсор мышки на нужном месте и кликните по пункту «Добавить текст», расположенному на верхней панели.
Примечание: Вполне логично, что вы можете создавать не только заголовки меньшего уровня, но и основные. Кликните по месту, где вы хотите его разместить, разверните пункт «Добавить текст» на панели управления и выберите «Уровень 1»
Выберете желаемый уровень заголовка: чем больше цифра, тем «глубже» будет этот заголовок.
Чтобы просмотреть содержание документа, а также для быстрой навигации по его содержанию (созданному вами), необходимо перейти во вкладку «Вид» и выбрать режим отображение «Структура».
Весь ваш документ разбит на пункты (заголовки, подзаголовки, текст), каждый из которых имеет свой уровень, предварительно указываемый вами. Отсюда между этими пунктами можно быстро и удобно переключаться.
В начале каждого заголовка есть небольшой синий треугольничек, кликнув по которому, вы можете скрыть (свернуть) весь текст, который относится к этому заголовку.
По ходу написания вами текста созданное в самом начале «Автособираемое оглавление» будет изменяться. В нем будут отображаться не только создаваемые вами заголовки и подзаголовки, но и номера страниц, на которых они начинаются, уровень заголовка тоже будет отображаться визуально.
Это и есть столь необходимое для каждой объемной работы автосодержание, сделать которое в Ворде очень просто. Именно содержание будет находиться в начале вашего документа, как это и требуется для РПЗ.
Автоматически сформированное оглавление (содержание) всегда хорошо выровнено и корректно отформатировано. Собственно, внешний вид заголовков, подзаголовков, как и всего текста всегда можно изменить. Делается это точно так же, как с размером и шрифтом любого другого текста в MS Word.
По ходу выполнения работы автоматическое содержание будет дополняться и расширяться, в нем будут проставляться новые заголовки и номера страниц, а из раздела «Структура» вы всегда сможете получить доступ к необходимой части своей работы, обратиться к нужной главе, вместо того, чтобы пролистывать документ вручную. Стоит отметить, что особенно удобной работа с документом с автосодержанием становится после его экспорта в PDF-файл.
Урок: Как конвертировать PDF в Word
На этом все, теперь вы знаете, как создать автоматическое содержание в Ворде. Стоит отметить, что данная инструкция применима ко всем версиям продукта от Майкрософт, то есть, таким образом можно сделать автоматическое оглавление в ворде 2003, 2007, 2010, 2013, 2016 и любых других версиях этого компонента офисного пакета. Теперь вы знаете немного больше и сможете работать более продуктивно.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Автоматический отчет
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 20 ]
1 20.01.2017 11:06:19
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Тема: Автоматический отчет
Добрый день!
Имеется отчет большой. Из этого отчета нужно сделать автоматический маленький (чтобы постоянно руками не забивать).
Пробовала и думала, но опыта и знаний не хватает. Скорее всего нужен макрос и кнопка Activix, чтобы «оп!», нажал, отчет готов.
Смысл в том, что по фильтру выбираю неделю, например, 32, и по этой неделе должен составиться отчет.
(В данном примеры указаны, нет никаких реальных)
Очень хочу понять, как это делать.
Post’s attachments
пример.xlsx 51.03 Кб, 4 скачиваний с 2017-01-20
You don’t have the permssions to download the attachments of this post.
__________________________________________
Errare humnnum est
2 Ответ от Fck_This 20.01.2017 16:28:33
- Fck_This
- генерал-полковник
- Неактивен
- Откуда: Минск, Беларусь
- Зарегистрирован: 13.07.2016
- Сообщений: 648
- Поблагодарили: 97
Re: Автоматический отчет
yuuki16 пишет:
Добрый день!
Имеется отчет большой. Из этого отчета нужно сделать автоматический маленький (чтобы постоянно руками не забивать).
Пробовала и думала, но опыта и знаний не хватает. Скорее всего нужен макрос и кнопка Activix, чтобы «оп!», нажал, отчет готов.
Смысл в том, что по фильтру выбираю неделю, например, 32, и по этой неделе должен составиться отчет.
(В данном примеры указаны, нет никаких реальных)
Очень хочу понять, как это делать.
В куда вам маленький отчёт делать? И ещё вопрос: строк 32 недели может быть несколько, да? Судя по всему вам нужно сделать поиск по области столбца с неделями, а затем по номеру ячейки брать всю строку и переносить в маленький отчёт(только не могу понять, где он должен быть — в этом документе или в отдельном, или на другом листе…)
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871
3 Ответ от yuuki16 21.01.2017 17:53:35
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Fck_This пишет:
yuuki16 пишет:
Добрый день!
Имеется отчет большой. Из этого отчета нужно сделать автоматический маленький (чтобы постоянно руками не забивать).
Пробовала и думала, но опыта и знаний не хватает. Скорее всего нужен макрос и кнопка Activix, чтобы «оп!», нажал, отчет готов.
Смысл в том, что по фильтру выбираю неделю, например, 32, и по этой неделе должен составиться отчет.
(В данном примеры указаны, нет никаких реальных)
Очень хочу понять, как это делать.
В куда вам маленький отчёт делать? И ещё вопрос: строк 32 недели может быть несколько, да? Судя по всему вам нужно сделать поиск по области столбца с неделями, а затем по номеру ячейки брать всю строку и переносить в маленький отчёт(только не могу понять, где он должен быть — в этом документе или в отдельном, или на другом листе…)
Маленький отчет на новый лист (так просто удобнее). Его можно увидеть на следующей вкладке в экселе.
Именно, количество строк будет расти, так как недель в году много. Это просто сейчас для примера так мало.
Да, но это опять же, сидеть переносить надо. Нельзя ли выбрала неделю, например, 36 — нажала на «волшебную» кнопку — получится тот маленький отчет?
__________________________________________
Errare humnnum est
4 Ответ от Fck_This 23.01.2017 09:47:46
- Fck_This
- генерал-полковник
- Неактивен
- Откуда: Минск, Беларусь
- Зарегистрирован: 13.07.2016
- Сообщений: 648
- Поблагодарили: 97
- За сообщение: 1
Re: Автоматический отчет
yuuki16 пишет:
Fck_This пишет:
yuuki16 пишет:
Добрый день!
Имеется отчет большой. Из этого отчета нужно сделать автоматический маленький (чтобы постоянно руками не забивать).
Пробовала и думала, но опыта и знаний не хватает. Скорее всего нужен макрос и кнопка Activix, чтобы «оп!», нажал, отчет готов.
Смысл в том, что по фильтру выбираю неделю, например, 32, и по этой неделе должен составиться отчет.
(В данном примеры указаны, нет никаких реальных)
Очень хочу понять, как это делать.
В куда вам маленький отчёт делать? И ещё вопрос: строк 32 недели может быть несколько, да? Судя по всему вам нужно сделать поиск по области столбца с неделями, а затем по номеру ячейки брать всю строку и переносить в маленький отчёт(только не могу понять, где он должен быть — в этом документе или в отдельном, или на другом листе…)
Маленький отчет на новый лист (так просто удобнее). Его можно увидеть на следующей вкладке в экселе.
Именно, количество строк будет расти, так как недель в году много. Это просто сейчас для примера так мало.Да, но это опять же, сидеть переносить надо. Нельзя ли выбрала неделю, например, 36 — нажала на «волшебную» кнопку — получится тот маленький отчет?
Можно. Я и имел в виду, что надо будет искать по неделе не вручную, а автоматически. (т.е. макросу надо будет искать).
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871
5 Ответ от yuuki16 23.01.2017 10:29:53
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Fck_This пишет:
yuuki16 пишет:
Fck_This пишет:
В куда вам маленький отчёт делать? И ещё вопрос: строк 32 недели может быть несколько, да? Судя по всему вам нужно сделать поиск по области столбца с неделями, а затем по номеру ячейки брать всю строку и переносить в маленький отчёт(только не могу понять, где он должен быть — в этом документе или в отдельном, или на другом листе…)
Маленький отчет на новый лист (так просто удобнее). Его можно увидеть на следующей вкладке в экселе.
Именно, количество строк будет расти, так как недель в году много. Это просто сейчас для примера так мало.Да, но это опять же, сидеть переносить надо. Нельзя ли выбрала неделю, например, 36 — нажала на «волшебную» кнопку — получится тот маленький отчет?
Можно. Я и имел в виду, что надо будет искать по неделе не вручную, а автоматически. (т.е. макросу надо будет искать).
О, ВЕЛИКИЙ МАСТЕР! Расскажите как
__________________________________________
Errare humnnum est
6 Ответ от Fck_This 23.01.2017 13:00:28
- Fck_This
- генерал-полковник
- Неактивен
- Откуда: Минск, Беларусь
- Зарегистрирован: 13.07.2016
- Сообщений: 648
- Поблагодарили: 97
- За сообщение: 1
Re: Автоматический отчет
yuuki16 пишет:
Fck_This пишет:
yuuki16 пишет:
Маленький отчет на новый лист (так просто удобнее). Его можно увидеть на следующей вкладке в экселе.
Именно, количество строк будет расти, так как недель в году много. Это просто сейчас для примера так мало.Да, но это опять же, сидеть переносить надо. Нельзя ли выбрала неделю, например, 36 — нажала на «волшебную» кнопку — получится тот маленький отчет?
Можно. Я и имел в виду, что надо будет искать по неделе не вручную, а автоматически. (т.е. макросу надо будет искать).
О, ВЕЛИКИЙ МАСТЕР! Расскажите как
Не надо рассказывать — всё готово.
На листе реестр (справа в верхнем углу) есть кнопочка Отчёт — жмём и вводим номер недели. Ждём. Смотрим результат.
Надоел отчёт? Жмём кнопочку «Удалить отчёт» на странице «маленький отчет».
Post’s attachments
пример.xlsm 78.57 Кб, 6 скачиваний с 2017-01-23
You don’t have the permssions to download the attachments of this post.
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871
7 Ответ от Fck_This 23.01.2017 13:26:05
- Fck_This
- генерал-полковник
- Неактивен
- Откуда: Минск, Беларусь
- Зарегистрирован: 13.07.2016
- Сообщений: 648
- Поблагодарили: 97
- За сообщение: 2
Re: Автоматический отчет
Fck_This пишет:
yuuki16 пишет:
О, ВЕЛИКИЙ МАСТЕР! Расскажите как
Не надо рассказывать — всё готово.
На листе реестр (справа в верхнем углу) есть кнопочка Отчёт — жмём и вводим номер недели. Ждём. Смотрим результат.
Надоел отчёт? Жмём кнопочку «Удалить отчёт» на странице «маленький отчет».
Ошибочка вышла. Кнопка убежала. Лучше брать вот этот макрос. ВЕЛИКИЙ МАСТЕР жалует с барского плеча.
Post’s attachments
Пример обновлённый.xlsm 83.01 Кб, 12 скачиваний с 2017-01-23
You don’t have the permssions to download the attachments of this post.
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871
8 Ответ от yuuki16 23.01.2017 16:09:34
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Fck_This пишет:
Fck_This пишет:
yuuki16 пишет:
О, ВЕЛИКИЙ МАСТЕР! Расскажите как
Не надо рассказывать — всё готово.
На листе реестр (справа в верхнем углу) есть кнопочка Отчёт — жмём и вводим номер недели. Ждём. Смотрим результат.
Надоел отчёт? Жмём кнопочку «Удалить отчёт» на странице «маленький отчет».Ошибочка вышла. Кнопка убежала. Лучше брать вот этот макрос. ВЕЛИКИЙ МАСТЕР жалует с барского плеча.
У меня при скачивании пишет «не удалось скачать». Скачивает как http. Не подскажите, как сохранить и открыть?
__________________________________________
Errare humnnum est
9 Ответ от Alex_Gur 23.01.2017 16:46:54
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
- За сообщение: 1
Re: Автоматический отчет
yuuki16 пишет:
У меня при скачивании пишет «не удалось скачать». Скачивает как http. Не подскажите, как сохранить и открыть?
Проверил. Файл скачивается очень хорошо, в формате XLSM. Только надо ждать долго (это — неприятная особенность нашего файлообменника ).
Я скачал обыкновенно — двойным щелчком мыши по ссылке.
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.
10 Ответ от yuuki16 23.01.2017 17:33:15
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Alex_Gur пишет:
yuuki16 пишет:
У меня при скачивании пишет «не удалось скачать». Скачивает как http. Не подскажите, как сохранить и открыть?
Проверил. Файл скачивается очень хорошо, в формате XLSM. Только надо ждать долго (это — неприятная особенность нашего файлообменника ).
Я скачал обыкновенно — двойным щелчком мыши по ссылке.
Вот что у меня. Почему так?(
Post’s attachments
Doc1.docx 288.6 Кб, файл не был скачан.
You don’t have the permssions to download the attachments of this post.
__________________________________________
Errare humnnum est
11 Ответ от yuuki16 23.01.2017 17:41:25
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Alex_Gur пишет:
yuuki16 пишет:
У меня при скачивании пишет «не удалось скачать». Скачивает как http. Не подскажите, как сохранить и открыть?
Проверил. Файл скачивается очень хорошо, в формате XLSM. Только надо ждать долго (это — неприятная особенность нашего файлообменника ).
Я скачал обыкновенно — двойным щелчком мыши по ссылке.
Простите за такое количество сообщений. Оказывается просто надо через другой браузер открывать. Интернет Эксплоурер не читает)))
__________________________________________
Errare humnnum est
12 Ответ от yuuki16 23.01.2017 17:43:38
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Fck_This пишет:
Fck_This пишет:
yuuki16 пишет:
О, ВЕЛИКИЙ МАСТЕР! Расскажите как
Не надо рассказывать — всё готово.
На листе реестр (справа в верхнем углу) есть кнопочка Отчёт — жмём и вводим номер недели. Ждём. Смотрим результат.
Надоел отчёт? Жмём кнопочку «Удалить отчёт» на странице «маленький отчет».Ошибочка вышла. Кнопка убежала. Лучше брать вот этот макрос. ВЕЛИКИЙ МАСТЕР жалует с барского плеча.
Холоп не понимает(
Я макрос не знаю как написать. Кнопочка то есть, да. А вот как напистаь макрос — загадка :'(
__________________________________________
Errare humnnum est
13 Ответ от yuuki16 23.01.2017 17:47:06
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Fck_This пишет:
Fck_This пишет:
yuuki16 пишет:
О, ВЕЛИКИЙ МАСТЕР! Расскажите как
Не надо рассказывать — всё готово.
На листе реестр (справа в верхнем углу) есть кнопочка Отчёт — жмём и вводим номер недели. Ждём. Смотрим результат.
Надоел отчёт? Жмём кнопочку «Удалить отчёт» на странице «маленький отчет».Ошибочка вышла. Кнопка убежала. Лучше брать вот этот макрос. ВЕЛИКИЙ МАСТЕР жалует с барского плеча.
ааааааааааааа, простите за такое количество спама!
РАЗОБРАЛАСЬ! БОЖЕЕЕЕЕЕЕЕЕЕ ХРАНИ УМНЫХ ЛЮДЕЙ!
СПАСИБО! Если будут вопросы, можно будет обратиться?
Спасибо-спасибо-спасибо!
__________________________________________
Errare humnnum est
14 Ответ от Fck_This 24.01.2017 08:57:45
- Fck_This
- генерал-полковник
- Неактивен
- Откуда: Минск, Беларусь
- Зарегистрирован: 13.07.2016
- Сообщений: 648
- Поблагодарили: 97
- За сообщение: 1
Re: Автоматический отчет
yuuki16 пишет:
Fck_This пишет:
Fck_This пишет:
Не надо рассказывать — всё готово.
На листе реестр (справа в верхнем углу) есть кнопочка Отчёт — жмём и вводим номер недели. Ждём. Смотрим результат.
Надоел отчёт? Жмём кнопочку «Удалить отчёт» на странице «маленький отчет».Ошибочка вышла. Кнопка убежала. Лучше брать вот этот макрос. ВЕЛИКИЙ МАСТЕР жалует с барского плеча.
ааааааааааааа, простите за такое количество спама!
РАЗОБРАЛАСЬ! БОЖЕЕЕЕЕЕЕЕЕЕ ХРАНИ УМНЫХ ЛЮДЕЙ!
СПАСИБО! Если будут вопросы, можно будет обратиться?
Спасибо-спасибо-спасибо!
Обращайтесь
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871
15 Ответ от yuuki16 24.01.2017 17:32:55
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Fck_This пишет:
yuuki16 пишет:
Fck_This пишет:
Ошибочка вышла. Кнопка убежала. Лучше брать вот этот макрос. ВЕЛИКИЙ МАСТЕР жалует с барского плеча.
ааааааааааааа, простите за такое количество спама!
РАЗОБРАЛАСЬ! БОЖЕЕЕЕЕЕЕЕЕЕ ХРАНИ УМНЫХ ЛЮДЕЙ!
СПАСИБО! Если будут вопросы, можно будет обратиться?
Спасибо-спасибо-спасибо!
Обращайтесь
подскажите, что делаю не так?
__________________________________________
Errare humnnum est
16 Ответ от yuuki16 24.01.2017 17:34:22
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Fck_This пишет:
yuuki16 пишет:
Fck_This пишет:
Ошибочка вышла. Кнопка убежала. Лучше брать вот этот макрос. ВЕЛИКИЙ МАСТЕР жалует с барского плеча.
ааааааааааааа, простите за такое количество спама!
РАЗОБРАЛАСЬ! БОЖЕЕЕЕЕЕЕЕЕЕ ХРАНИ УМНЫХ ЛЮДЕЙ!
СПАСИБО! Если будут вопросы, можно будет обратиться?
Спасибо-спасибо-спасибо!
Обращайтесь
Подскажите, что делаю не так?
И подскажите, как научиться писать макросы/скрипты для чайников. Мб какая-то литература?
Post’s attachments
ROE.xlsm 118.51 Кб, 1 скачиваний с 2017-01-24
You don’t have the permssions to download the attachments of this post.
__________________________________________
Errare humnnum est
17 Ответ от Alex_Gur 24.01.2017 22:57:56
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
- За сообщение: 1
Re: Автоматический отчет
yuuki16 пишет:
И подскажите, как научиться писать макросы/скрипты для чайников. Мб какая-то литература?
Самое лучшее, на мой взгляд, — это видеокурсы учебного центра «Специалист», входящих в комплексную программу EХСEL «VBA — программист»:
Microsoft Excel 2013/2010/2007. Уровень 4. Макросы на VBA и
Microsoft Excel 2013/2010/2007. Уровень 5. Углубленное программирование на VBA
Попробуйте поискать их в интернете.
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.
18 Ответ от Fck_This 25.01.2017 09:03:51
- Fck_This
- генерал-полковник
- Неактивен
- Откуда: Минск, Беларусь
- Зарегистрирован: 13.07.2016
- Сообщений: 648
- Поблагодарили: 97
- За сообщение: 2
Re: Автоматический отчет
yuuki16 пишет:
Подскажите, что делаю не так?
И подскажите, как научиться писать макросы/скрипты для чайников. Мб какая-то литература?
Вы поменяли названия листов Excel — там был «маленький отчёт», а здесь — «Лист2». Надо в названии поменять.
Лучше всего учить в действии. Пытайтесь организовать поиск данных через Ctrl+H, но перед этим включите запись макроса. Посмотрите какой код вышел у макрорекодера, поменяйте и перевоспроизведите. Нажимайте справку для объектов (F1) в макроредакторе. Пробуйте поиск с подстановочными знаками (внешняя ссылка)
Вот хороший ресурс — всё доступно и понятно — следуйте инструкциям (внешняя ссылка). Вот ещё полезный ресурс (внешняя ссылка) тоже многое смотрел там. Попробуйте посоздавать формы (после поиска или параллельно): делайте кнопки и другие элементы, привязываая к ним макросы реагирования. Всю информацию «что» и «как» (95% точно) можно почерпнуть в интернете. Организуйте циклы повторения, экспериментируйте. Я читал ещё Стива Каммингса «VBA для чайников», но начинать с чтения этой книги не советую — много читать и нудно, особенно если ничего не понимаешь. Да и научиться чему-то по ней сложновато. Лучше делать упор на практику.
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871
19 Ответ от yuuki16 25.01.2017 16:39:20
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Fck_This пишет:
yuuki16 пишет:
Подскажите, что делаю не так?
И подскажите, как научиться писать макросы/скрипты для чайников. Мб какая-то литература?
Вы поменяли названия листов Excel — там был «маленький отчёт», а здесь — «Лист2». Надо в названии поменять.
Лучше всего учить в действии. Пытайтесь организовать поиск данных через Ctrl+H, но перед этим включите запись макроса. Посмотрите какой код вышел у макрорекодера, поменяйте и перевоспроизведите. Нажимайте справку для объектов (F1) в макроредакторе. Пробуйте поиск с подстановочными знаками (внешняя ссылка)
Вот хороший ресурс — всё доступно и понятно — следуйте инструкциям (внешняя ссылка). Вот ещё полезный ресурс (внешняя ссылка) тоже многое смотрел там. Попробуйте посоздавать формы (после поиска или параллельно): делайте кнопки и другие элементы, привязываая к ним макросы реагирования. Всю информацию «что» и «как» (95% точно) можно почерпнуть в интернете. Организуйте циклы повторения, экспериментируйте. Я читал ещё Стива Каммингса «VBA для чайников», но начинать с чтения этой книги не советую — много читать и нудно, особенно если ничего не понимаешь. Да и научиться чему-то по ней сложновато. Лучше делать упор на практику.
Спасибо, мастер Йода Очень выручили.
Я обязательно возьмусь за эту литературу
__________________________________________
Errare humnnum est
20 Ответ от yuuki16 25.01.2017 16:41:34
- yuuki16
- сержант
- Неактивен
- Зарегистрирован: 20.01.2017
- Сообщений: 35
Re: Автоматический отчет
Alex_Gur пишет:
yuuki16 пишет:
И подскажите, как научиться писать макросы/скрипты для чайников. Мб какая-то литература?
Самое лучшее, на мой взгляд, — это видеокурсы учебного центра «Специалист», входящих в комплексную программу EХСEL «VBA — программист»:
Microsoft Excel 2013/2010/2007. Уровень 4. Макросы на VBA и
Microsoft Excel 2013/2010/2007. Уровень 5. Углубленное программирование на VBAПопробуйте поискать их в интернете.
Спасибо! Огромное!
Возьмусь за это дело, в избранное все добавила.
__________________________________________
Errare humnnum est
Сообщений [ 20 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Похожие темы
- Отчет результатов исследования из SolidWorks
- Как распознать автоматический перенос?
- Автоматический обрыв объектов слияния
- Как отключить автоматический подсчёт слов?
- Автоматический выбор шаблона документа
- Автоматический подбор размера шрифта
- Автоматический вывод периода в Word
- автоматический расчет возраста по двум датам
Автоматический отчет
Если вспомнить, с какой программы началось ваше знакомство с возможностями персонального компьютера, то большинство назовет Microsoft Word. На портале о Microsoft Office Word вы узнаете про: как связать таблицы в экселе.
Этот универсальный текстовый редактор выручает нас во многих сферах деятельности и позволяет облегчить и ускорить работу с текстами. На портале о Microsoft Office Word вы узнаете про: почему принтер не печатает фон ворд 2010.
В Ворде предусмотрена возможность автоматизации почти всех операций, которые нам приходится выполнять, создавая, редактируя или оформляя тексты. Наш сайт о Microsoft Office Word даст ответ про: как назначить сочетание клавиш в office 2010.
Если вы желаете совершенствовать свою работы, поделиться с другими пользователями хитростями и тонкостями, и свою очередь узнать, какие секреты применяют они, работая в Ворде, то такая возможность есть на форуме сайта Ворд Эксперт, где обсуждается все, связанное с этим приложением. На портале о Microsoft Office Word вы узнаете про: как сделать подпись к рисунку в ms word.
На форуме возможно обсудить настройки различных версий программы, назначения функциональных клавиш, оптимальные пути при выполнении тех или иных операций форматирования и редактирования в подразделе «Настройка и Форматирование». Наш сайт о Microsoft Office Word даст ответ про: как в ворде 2010 добавить белорусский язык.
Шаблонам и макросам для различных операций посвящен подраздел «Автоматизация», а поделиться своими вариантами решения или, напротив, сделать заказ, можно в соответствующих подразделах. Наш сайт о Microsoft Office Word даст ответ про: расчеты в таблицах в microsoft word 2003.
Самые часто встречающиеся проблемы вынесены в свою тему. Там вы найдете и много полезной литературы, ссылок, для совершенствования своих умений по работе в Ворде. На портале о Microsoft Office Word вы узнаете про: word обрезать рисунок.
Обсудить общие вопросы и оставить отзыва можно в подфоруме «Общение».