По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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
OpenMeetings - программное средство, предназначенное для проведения видеоконференций, презентаций, а также позволяет проводить онлайн-обучение обеспечивая при этом мгновенный обмен данных. Программа помимо основных функций имеет ряд полезных возможностей, способствующих качественному проведению мероприятий используя видеосвязь к которым относятся: групповой и личный чат для удобного общения пользователей; запись с экрана и звука во время проведения видеотрансляций; возможность создавать неограниченное количество сессий для общения; внутренний почтовый клиент для переписки и рассылок по электронной почте; удобный и понятный календарь с функцией планирования событий; проведение опросов и голосования среди аудитории в режиме реального времени; пересылка необходимых документов или файлов различных форматов; удобное и функциональное приложение для ОС Android. Достоинством программы OpenMeetings наличие гибкой настройки интерфейса под бренд компании с размещением логотипов, собственного дизайна, а также выбрать набор необходимых инструментов для удобной работы и общения. Требования для установки программы: Сервер под управлением Ubuntu 18.04. Пользователь с предоставленными правами sudo. Минимальные системные требования: Рекомендуемые системные требования: CPU: 1 ГГц; CPU: 2x/4x 2 ГГц; Оперативная память: 1 ГБ; Оперативная память: 4 ГБ; Установить Java OpenMeetings написана Java скриптах, поэтому вам для работы программы необходимо будет ее установить. По умолчанию последняя версия Java недоступна в репозитории Ubuntu 18. Поэтому вам нужно будет добавить репозиторий Java в вашу систему, выполнив следующую команду: sudo add-apt-repository --yes ppa:webupd8team/java Затем следует обновить репозиторий и установить Java с помощью следующей команды: sudo apt-get install oracle-java8-installer -y После установки Java вы можете проверить ее версию с помощью следующей команды: java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11 Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode) Следующим этапом Вам необходимо установить некоторые компоненты для вашей системы с помощью выполнения следующей команды: sudo apt-get install install imagemagick ghostscript libxt6 libxrender1 ffmpeg sox -y Далее вам необходимо установить MariaDB Server для хранения данных в вашей системе, выполнив следующую команду: sudo apt-get install mariadb-server -y После установки MariaDB необходимо войти в оболочку MariaDB: mysql -u root -p Введите пароль пользователя root и нажмите Enter, затем создайте базу данных и пользователя с помощью следующей команды: MariaDB [(none)]> CREATE DATABASE openmeetings; MariaDB [(none)]> CREATE USER openmeetings; Затем предоставьте права доступа к базе данных OpenMeetings с помощью следующей команды: MariaDB [(none)]> GRANT ALL PRIVILEGES ON openmeetings.* TO 'openmeetings'@'localhost' IDENTIFIED BY 'password'; Затем необходимо выполнить команду FLUSH PRIVILEGES, чтобы таблица привилегий была перезагружена MySQL, и мы могли использовать новые учетные данные: MariaDB [(none)]> FLUSH PRIVILEGES; Затем выйдите из консоли MariaDB с помощью следующей команды: MariaDB [(none)]> q Установка OpenMeetings Вы можете загрузить последнюю версию OpenMeetings со страницы загрузки, перейдя в браузере по следующей ссылке: wget http://www-eu.apache.org/dist/openmeetings/4.0.4/bin/apache-openmeetings-4.0.4.tar.gz После завершения загрузки извлеките загруженный файл с помощью следующей команды: sudo tar xvf apache-openmeetings-4.0.4.tar.gz -C /opt/openmeetings Затем запустите приложение с помощью следующей команды: cd /opt/openmeetings sudo sh red5.sh openmeetings Доступ к веб-интерфейсу OpenMeetings Откройте веб-браузер и введите URL-адрес http://your-server-ip:5080/openmeetings. Вы будете перенаправлены на следующую страницу: Здесь нажмите на кнопку >. Вы должны увидеть следующую страницу: Выберите тип базы данных и укажите имя базы данных, затем нажмите кнопку >. Вы должны увидеть следующую страницу: Введите имя пользователя, пароль и адрес электронной почты, затем нажмите кнопку >. Вы должны увидеть следующую страницу: Теперь предоставьте данные SMTP, затем нажмите кнопку >. Вы должны увидеть следующую страницу: Укажите ImageMagick, sox и путь FFmpeg, затем нажмите кнопку >. Вы должны увидеть следующую страницу: Выберите значение по умолчанию и нажмите кнопку >. Вы должны увидеть следующую страницу: Теперь нажмите на кнопку "Enter the Application". Вы должны увидеть следующую страницу: Введите свои учетные данные, затем нажмите кнопку "Sign In". Вы должны увидеть следующую страницу: В заключении следует отметить, что проведение видеоконференций с помощью программы OpenMeetings оправдывает себя за счет простого управления программой и хорошего набора удобных функций необходимых для качественного общения по видеосвязи.
img
Если вы еще не умеете писать скрипты в системах Unix и Linux, эта статья познакомит с основами написания скриптов. Написание скриптов в системе Unix или Linux может быть одновременно и простым и чрезвычайно сложным. Все зависит от того, что вы пытаетесь выполнить, используя скрипт. В этой статье мы рассмотрим основы создания скриптов - то, как начать, если вы никогда раньше не создавали скрипты. Идентификация оболочки. Сегодня в системах Unix и Linux есть несколько оболочек, которые вы можете использовать. Каждая оболочка - это интерпретатор команд. Он считывает команды и отправляет их ядру для обработки. Bash является одной из самых популярных оболочек, но существуют также zsh, csh, tcsh и korn. Есть даже оболочка под названием fish, которая может быть особенно полезна новичкам в Linux благодаря полезным параметрам автозаполнения команд. Чтобы определить, какую оболочку вы используете, используйте эту команду: $ echo $SHELL /bin/bash Вы также можете определить свою основную оболочку, просмотрев файл /etc/passwd: $ grep $USER /etc/passwd nemo:x:1111:1111:Nemo the Fish:/home/nemo:/bin/bash “ read myfile else myfile=$1 fi if [ ! -f “$myfile” ]; then echo “Файл не найден: $myfile” exit fi case $myfilein *.tar) tar xf $myfile;; *.zip) unzip $myfile;; *.rar) rar x $myfile;; *) echo “Нет опций для извлечения $myfile” esac Обратите внимание, что этот сценарий также запрашивает имя файла, если оно не было предоставлено, а затем проверяет, действительно ли указанный файл существует. Только после этого выполняется извлечение. Реакция на ошибки Вы можете обнаруживать ошибки в скриптах и реагировать на них и тем самым избегать других ошибок. Хитрость заключается в том, чтобы проверять выходные коды после запуска команд. Если код выхода имеет значение, отличное от нуля, произошла ошибка. В этом скрипте проверяется, запущен ли Apache, но отправляем результат проверки в /dev/null. Затем проверяем, не равен ли код выхода нулю, поскольку это означает, что команда ps не получила ответа. Если код выхода не равен нулю, сценарий сообщает пользователю, что Apache не запущен. #!/bin/bash ps -ef | grep apache2 > /dev/null if [ $? != 0 ]; then echo Apache is not running exit fi
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59