По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В этой статье мы расскажем как интегрировать Python c Excel и Word, чтобы без проблем создавать автоматические отчеты. Microsoft Excel и Microsoft Word – это, без доли сомнений, две наиболее широко используемые программы как в мире бизнеса, так и в некорпоративной сфере. Они практически являются синонимами слову «работа». Как правило, не проходит и недели, чтобы мы тем или иным способом не воспользовались их преимуществами. И хотя для обычных повседневных задач автоматизация не требуется, бывают случаи, когда она может стать необходимостью. А именно, когда у вас есть множество диаграмм, рисунков, таблиц и отчетов, которые необходимо сделать, это может стать очень утомительным занятием, если все это выполнять вручную. А это не должно быть так. На самом деле существует способ создать конвейер в Python, где можно будет легко интегрировать эти программы для создания электронных таблиц в Excel, а затем передавать результаты в Word для создания отчета практически мгновенно. Openpyxl Познакомьтесь с Openpyxl, возможно, одной из самых универсальных привязок в Python, которая превращает взаимодействие с Excel буквально в прогулку по парку. Используя этот пакет, вы сможете читать и записывать все новые и старые форматы Excel, то есть .xlsx и .xls. Openpyxl позволяет заполнять строки и столбцы, выполнять формулы, создавать 2D- и 3D-диаграммы, маркировать оси и заголовки, а также имеет множество других возможностей, которые могут пригодиться. Однако здесь наиболее важно то, что этот пакет позволяет вам перебирать бесконечное количество строк и столбцов Excel, тем самым избавляя вас от всех этих утомительных вычислений и построения графиков, которые вам приходилось делать ранее самим. Python-docx А затем появляется Python-docx – пакет для Word – то же, что Openpyxl для Excel. Если вы все еще не изучили их документацию, то вам все же стоит на нее взглянуть. Python-docx – без преувеличения один из самых простых и понятных наборов инструментов, с которыми я работал с тех пор, как начал работать с Python. Он позволяет автоматизировать создание документов, автоматически вставляя текст, заполняя таблицы и отображая изображения в отчете без каких-либо усилий. Без лишних церемоний давайте создадим наш собственный автоматизированный конвейер. Запустите IDE по вашему выбору и установите следующие пакеты: pip install openpyxlpip 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') passworkbook_2.Close(True) operation.Quit() Автоматизация Microsoft Word Теперь, когда у нас есть изображение диаграммы, мы должны создать шаблон документа, который представляет собой обычный документ Microsoft Word (.docx), сформированный именно так, как нам необходимо, чтобы наш отчет имел определенный тип и размер шрифта, нужное форматирование и структуру страницы. Далее, все, что нам необходимо сделать, это создать заполнители для нашего автоматизированного содержимого, то есть значений таблиц и изображений, и объявить их с переменными, как показано ниже. Внутри двойных фигурных скобок {{variable_name}} может быть объявлен любое автоматизированное содержимое, включая текст и изображения. Для таблиц вам необходимо создать таблицу с шаблонной строкой, в которую включены все столбцы, а затем вам необходимо добавить еще одну строку выше и одну строку ниже со следующими обозначениями: Первая строка: {%tr for item in variable_name %} Последняя строка: {%tr endfor %} На рисунке выше указаны следующие имена переменных: 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')
img
Дорогой друг! Обновление RouterOS на маршрутизаторах Mikrotik важный процесс – с каждой новой версией разработчики «прокачивают» рабочий функционал и фиксят баги. Процесс ну очень прост и занимает всего 3 клика. Спешим рассказать :) Обновление Подключаемся через утилиту Winbox к маршрутизатору. Открываем меню System → Packages: Далее, в открывшемся меню нажимаем Check For Updates: В открывшемся окне нам будет представлен так называемый changelog или другими словами «обзор изменений». Ознакомимся с представленной информацией. Обновляться мы будет с версии 6.35.4 до версии 6.40.2. Когда все нам стало ясно, в правом верхнем углу нажимаем Download & Install. Маршрутизатор загрузит новую версию и уйдет в перезагрузку, после чего новый RouterOS будет доступен для работы. Будьте готовы обновить Winbox, который может быть не совместим с новой версий RouterOS;
img
С момента появления вычислительной техники и интернета компьютерная сеть играет жизненно важную роль для обмена ресурсами и информацией как внутри организации, так и на глобальном уровне. Люди, которым поручено контролировать эти сети, называются сетевыми инженерами или сетевыми администраторами. Сетевые инженеры и администраторы используют различные инструменты для проектирования, мониторинга или анализа компьютерных систем. Что бы не экспериментировать на реальных сетях (что чревато сбоем или выходом из строя сетевой инфраструктуры) системные администраторы для этого используют инструменты сетевого моделирования. Сегодня мы рассмотрим 5 лучших инструментов сетевого моделирования, которые могут помочь вам в проектировании и улучшении производительности системы. После изучения нашего списка инструментов сетевого моделирования, вы сможете выбрать себе наиболее оптимальное программное обеспечение для эмуляции сетей. Данное ПО позволит решить проблемы и провести тесты, которые невозможно применить на реально-существующих сетях из-за риска нарушить нормальное функционирование. GNS3 GNS3: это одна из самых популярных программ эмуляции сети, которая позволяет наблюдать взаимодействие сетевых устройств в различных топологиях сетей. Это программное обеспечение, которое является интегрированным сегментом в международной сети обучения сертификации. Одного такого факта достаточно, чтобы показать, насколько современным и всеобъемлющим является этот программный инструмент, когда речь заходит об успешном моделировании сети. Он прост в установке и реализации, что делает его популярным выбором как на любительском, так и на профессиональном уровне. Cisco Packet Tracer Cisco Packet Tracer: одна из основных причин, по которой этот инструмент моделирования сети, разработанный CISCO systems, занял второе место в ТОП-5, заключается в том, что он кросс-платформенный. Этот уникальный инструмент моделирования поможет вам не только построить топологию сети, но и воспроизвести ее в современных компьютерных сетях. Cisco PT позволяет имитировать соответствующую конфигурацию через CLI. А еще Packet Tracer отлично подходит для VoIP EVE-NG EVE-NG: Emulated Virtual Environment Next Generation or EVEN-NG- это единственный в своем роде многопользовательский сетевой симулятор, предназначенный для небольших предприятий и частных лиц. Реализация этого инструмента моделирования виртуальной сети является как платным, так и бесплатным. Бесплатная версия имеет ограничение в 63 узла на лабораторию. Для виртуализации, связывания и настройки сетевых устройств нет необходимости загружать и устанавливать дополнительное приложение помимо сервера. Все проектирование, подключение и управление сетевыми топологиями можно легко выполнить с помощью интегрированного HTML5- клиента. Важным фактором, который делает EVE-NG одним из лучших инструментов моделирования сети, является то, что приложение экономит время, позволяя вам вносить изменения в топологию сетей во время их одновременного запуска. Кроме того, она подходит как для Ethernet, так и для последовательных интерфейсов. Boson NetSim Boson NetSim: это приложение, имитирующее сетевые коммутаторы и маршрутизаторы Cisco. Одна из ключевых особенностей этого инструмента моделирования заключается в том, что он поставляется вместе со всеми лабораторными работами от Boson, и нет необходимости загружать отдельные файлы и импортировать их позже в NetSim. Весь процесс загрузки, отделки и сортировки лабораторных работ осуществляется в самом приложении. Построение и загрузка топологий сетей могут быть легко выполнены с помощью приложения. И наоборот, вы также можете просматривать топологии, загруженные другими участниками сообщества, и загружать их в приложение. Функции терминала чрезвычайно реалистичны. Также стоит отметить, что Boson NetSim заимствует интуитивно понятную систему настройки от GNS3. Дополнительные модули (называемые надстройками) могут быть включены для настройки сетевого устройства. Когда устройство подключено к топологии сети, программное обеспечение спрашивает, какие именно модули вы хотите добавить. VIRL VIRL: Virtual Internet Routing Lab или VIRL- это эмулятор виртуальной сети от Cisco, который был специально разработан для удовлетворения потребностей образовательных учреждений и частных лиц. Будучи одним из топ-5 инструментов моделирования сетей в 2020 году, он поставляется в высоко масштабируемых вариантах, специально разработанных для средних и крупных предприятий. VIRL, поддерживающий клиент-серверную модель и сервер, могут быть легко установлены на виртуальной машине под управлением ESXi от VMware или даже на "голом железе" сервера. Использование инструмента моделирования VIRL позволяет вам получить доступ к целому ряду лицензированных образов программного обеспечения Cisco, таких, как NX-Osv, IOS-Xrv, ASAv и IOSv (как второго уровня, так и третьего уровня). Хорошо то, что эти образы можно легко извлечь из сервера VIRL и установить поверх других эмуляторов, таких как EVE-NG и GNS3. Кроме того, VIRL ввела функцию, известную как AutoNetKit, которая облегчает базовые функции конфигурации на узлах для автоматического заполнения всей топологии сети. Эта функция очень эффективна в том случае, если вам необходимо быстро оценить модель поведения конкретной технологии или, практически воссоздать всю существующую сеть. Подведем итоги Приведенный выше список, безусловно, является кратким, но он определенно является всеобъемлющим для личных целей. Цель этого списка состоит не только в том, чтобы познакомить вас со списком инструментов моделирования сети входящих топ- 5, но и познакомить вас с возможностями специализированных функций этих инструментов.
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59