J'essaie d'écrire le tableau suivant dans une feuille de calcul Excel en utilisant Python:
array = [ [a1,a2,a3], [a4,a5,a6], [a7,a8,a9], [a10, a11, a12, a13, a14]]
Au tableau de feuille de calcul devrait ressembler à:
a1 a4 a7 a10
a2 a5 a8 a11
a3 a6 a9 a12
a13
a14
Quelqu'un peut-il montrer du code Python pour le faire? Merci d'avance,
Felix
Voici une façon de le faire en utilisant le module XlsxWriter :
import xlsxwriter
workbook = xlsxwriter.Workbook('arrays.xlsx')
worksheet = workbook.add_worksheet()
array = [['a1', 'a2', 'a3'],
['a4', 'a5', 'a6'],
['a7', 'a8', 'a9'],
['a10', 'a11', 'a12', 'a13', 'a14']]
row = 0
for col, data in enumerate(array):
worksheet.write_column(row, col, data)
workbook.close()
Production:
Utilisez pandas trame de données!
import pandas as pd
array = [['a1', 'a2', 'a3'],
['a4', 'a5', 'a6'],
['a7', 'a8', 'a9'],
['a10', 'a11', 'a12', 'a13', 'a14']]
df = pd.DataFrame(array).T
df.to_Excel(excel_writer = "C:/Users/Jing Li/Desktop/test.xlsx")
Excel_writer est Chemin de fichier dans str ou objet ExcelWriter existant.
print array
Cela imprime le tableau dans la console Python avec des crochets marquant le début et la fin des lignes. Sélectionnez tout cela et copiez-collez dans Excel. Cliquez sur l'icône coller -> Assistant d'importation de texte Cela devrait faire apparaître this .
Choisissez Largeur fixe et cliquez sur Suivant pour obtenir ceci
Cliquez sur Suivant, puis sur Terminer. Cela suffira. Vous devrez toujours supprimer les crochets de fin de certaines cellules.
La façon la plus courante que j'ai vue d'écrire dans une feuille de calcul Excel avec Python est d'utiliser OpenPyXL , une bibliothèque non native de python. Une autre que je ' J'ai entendu dire qu'il est parfois utilisé le XlsxWriter , encore une fois, cependant, il n'est pas natif. Les deux sites ont une excellente documentation sur la meilleure façon d'utiliser les bibliothèques, mais ci-dessous est un code simple que j'ai écrit pour démontrer - OpenPyXL :
from openpyxl import workbook
from openpyxl.cell import get_column_letter
workbook = Workbook() # the master workbook
output_file_name = "outfile.xlsx" # what "workbook" will be saved as
worksheet = workbook.active() # all workbooks have one worksheet already selected as the default
worksheet.title = "foo"
worksheet['A3'] = "=SUM(A1, A2)" # set up basic formula
wb.save(output_file_name)
EDIT: Par exemple, votre demande pourrait être écrite comme telle:
## imports and stuff ##
array = [ [a1,a2,a3], [a4,a5,a6], [a7,a8,a9], [a10, a11, a12, a13, a14]]
workbook = Workbook()
worksheet = workbook.active()
numrows = len(array)
letter = 'A'
for r in range(0, numrows):
if r == 0: letter = 'A'
if r == 1: letter = 'B'
if r == 2: letter = 'C'
...
numcols = len(array[r])
for c in range(0, numcols):
worksheet[letter.join(c)] = array[r][c]
Honnêtement, cela pourrait même ne pas fonctionner, mais je suis trop fatigué pour tester. Je pense que vous avez compris l'idée.