openpyxl est une bibliothèque pour lire et écrire * .xlsx en Python.
A Python library to read/write Excel 2010 xlsx/xlsm files https://openpyxl.readthedocs.org/en/default/
Ce n'est pas très intéressant de l'utiliser seul, mais certaines personnes peuvent être heureuses de pouvoir récupérer les informations de configuration de la destination de connexion SSH et générer automatiquement la feuille de paramètres d'Excel, alors j'ai essayé un peu.
Voici l'exemple de code qui a été créé en essayant les fonctions qui pourraient être utilisées une par une.
createlPackageList.py
import ssh
from openpyxl import Workbook
from openpyxl.styles.borders import Side, Border
from openpyxl.styles import Style, PatternFill
hostname = 'foo.bar.com'
username = 'root'
password = 'XXXXXXXX'
port = 22
client = ssh.SSHClient()
client.set_missing_host_key_policy(ssh.AutoAddPolicy())
client.connect(hostname, username = username, password = password, port = port)
stdin, stdout, stderr = client.exec_command('rpm -qa --queryformat="%{NAME},%{VERSION},%{RELEASE},%{ARCH},%{GROUP}\n" | sort')
wb = Workbook()
ws = wb.active
ws.append(['Name', 'Version', 'Release', 'Architecture', 'Group'])
for line in stdout.read().split('\n'):
ws.append(list(line.split(',')))
thin_border = Border(left = Side(style = 'thin'),
right = Side(style = 'thin'),
top = Side(style = 'thin'),
bottom = Side(style = 'thin'))
my_style = Style(border = thin_border)
for _row in ws.iter_rows('A1:E' + str(ws.max_row)):
for _cell in _row:
_cell.style = my_style
lightblueFill = PatternFill(start_color = '0000FFFF',
end_color = '0000FFFF',
fill_type = 'solid')
for _row in ws.iter_rows('A1:E1'):
for _cell in _row:
_cell.fill = lightblueFill
ws.column_dimensions['A'].width = 45
ws.column_dimensions['B'].width = 15
ws.column_dimensions['C'].width = 28
ws.column_dimensions['E'].width = 30
wb.save("output.xlsx")
Puisque openpyxl traite en interne les lignes Excel comme une liste, nous lisons ici le résultat de l'exécution (stdout) de rpm -qa… | sort exécuté à la destination de connexion SSH ligne par ligne, et le divisons colonne par colonne dans la liste. Vous pouvez le convertir et l'ajouter à la feuille de calcul ws de la classe Workbook.
Vous pouvez également encadrer les cellules, spécifier des couleurs ou modifier la largeur des colonnes dans le module Styles.
Le fichier Excel suivant est créé en exécutant le script ci-dessus. Bien entendu, aucun travail d'édition artificiel n'est effectué après la génération du fichier.
Si vous avez une bibliothèque facile à utiliser en Python, c'est très pratique car vous pouvez facilement le faire avec des dizaines de lignes de code.
Environnement: confirmé avec Python 2.7.9 + openpyxl 2.3.1.
Recommended Posts