web-dev-qa-db-fra.com

Comment écrire Python Array dans une feuille de calcul Excel

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

7
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:

enter image description here

8
jmcnamara

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.

5
Jing Li
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.

0
Sourya Dey

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.

0
bpgeck