[PYTHON] Lire, modifier et écrire des fichiers Excel de GCP App Engine Storage

Chose que tu veux faire

  1. Lire un fichier Excel à partir de GCP Storage
  2. Modifier le contenu d'Excel
  3. Écrire un fichier Excel sur GCP Storage
  4. Téléchargement de fichier

Example

# -*- coding: utf-8 -*-
import logging
from flask import render_template, Flask, Response
from google.cloud import storage
import openpyxl
from openpyxl.writer.excel import save_virtual_workbook
import io

app = Flask(__name__)

logging.getLogger().setLevel(logging.INFO)


@app.route('/applicationform/a0026', methods=['GET', 'POST'])
def a0026():
    client = storage.Client()
    bucket = client.get_bucket('★ Nom du projet ★.appspot.com')
    blob = bucket.blob('a0025.xlsx')
    blob_io = io.BytesIO(blob.download_as_string())
    wb = openpyxl.load_workbook(blob_io, keep_vba=False)
    sheet = wb.get_sheet_by_name('★ Nom de la feuille ★')
    sheet['K5'] = 'Test Test'
    save_data = save_virtual_workbook(wb)
    new_blob = bucket.blob('a0025_new.xlsx')
    new_blob.upload_from_string(save_data, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
    res = Response(save_data, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
    res.headers['Content-Disposition'] = 'attachment; filename="a0025_new.xlsx"'

    return res


if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8080, debug=True)

Pour les fichiers avec des macros

** Définissez keep_vba sur True. ** **

wb = openpyxl.load_workbook(blob_io, keep_vba=True)

** Type de contenu modifié en "application / vnd.ms-excel.sheet.macroEnabled.12" **

new_blob.upload_from_string(save_data, content_type='application/vnd.ms-excel.sheet.macroEnabled.12')
res = Response(save_data, content_type='application/vnd.ms-excel.sheet.macroEnabled.12')

** Modifier l'extension **

new_blob = bucket.blob('a0025_new.xlsm')
res.headers['Content-Disposition'] = 'attachment; filename="a0025_new.xlsm"'

memo

Recommended Posts

Lire, modifier et écrire des fichiers Excel de GCP App Engine Storage
Lire et écrire des fichiers csv avec numpy
Lire et écrire des fichiers JSON avec Python
Lire des fichiers sur GCS à l'aide de la bibliothèque cliente Cloud Storage
Lire et écrire des fichiers avec Slackbot ~ Développement de bot avec Python ~
[Python] Utilisez ceci pour lire et écrire des fichiers wav [wavio]
Lire et écrire un fichier csv
Lire et écrire des fichiers
Utilisation du fichier de propriétés avec l'environnement flexible Java 8 de Google App Engine