[PYTHON] Utilisez TSC (Tableau Server Client) pour obtenir des fichiers PDF et png à partir du serveur Tableau.

introduction

Utilisez python3.8.0. TSC doit être installé. github( https://github.com/tableau/server-client-python ) PyPI( https://pypi.org/project/tableauserverclient/ )

pip install tableauserverclient
import tableauserverclient as TSC

Entrez les informations de compte et de serveur utilisées pour le nom d'utilisateur, le mot de passe, l'ID de site et l'URL du serveur. De plus, je souhaite utiliser la dernière version, j'ai donc défini l'option user_server_version sur True.

tableau_auth = TSC.TableauAuth('username', 'password', 'siteid')
server = TSC.Server('serverurl', use_server_version=True)

Exécutez le code suivant pour voir si la vue existe sur votre site. Assurez-vous également d'exécuter ʻall_views` car il sera utilisé plus tard.

all_views, pagination_item = server.views.get()
print([view.name for view in all_views])

Enregistrer au format PDF

Si vous souhaitez obtenir la vue au format de fichier: pdf, taille: A4, orientation: paysage, utilisez le code suivant.

pdf_req_option = TSC.PDFRequestOptions(page_type=TSC.PDFRequestOptions.PageType.A4,
                 orientation=TSC.PDFRequestOptions.Orientation.Landscape)
with server.auth.sign_in(tableau_auth):
    for view_item in all_views:
        #Générer une image PDF
        server.views.populate_pdf(view_item, req_options=pdf_req_option)
        with open(f'{view_item.name}.pdf', 'wb') as f:
            f.write(view_item.pdf)

PDFRequestOptions

Use this class to specify the format of the PDF that is returned for the view. See views.populate_pdf.

PDFRequestOptions(page_type=None, orientation=None)

page_type Vous pouvez spécifier la taille du pdf. La valeur par défaut est «Legal».

-PageType.A3 -PageType.A4 -PageType.A5 -PageType.B5 -PageType.Executive -PageType.Folio -PageType.Ledger -PageType.Legal -PageType.Letter -PageType.Note -PageType.Quarto -PageType.Tabloid

orientation Vous pouvez spécifier l'orientation de la page. La valeur par défaut est «Portrait» (vertical). -ʻOrientation.Portrait: Vertical -ʻOrientation.Paysage: Horizontal

vf (filtre)

Vous pouvez également utiliser la méthode vf sur cette classe pour filtrer la vue. Par exemple

# (optional) set a view filter
pdf_req_option.vf('Region', 'West')

Ensuite, la vue avec «Région» filtrée sur «Ouest» sera convertie en pdf.

Voir aussi: classe PDFRequestOptions

Enregistrer au format PNG

Pour obtenir la vue au format de fichier: png et orientation: paysage, utilisez le code suivant.

image_req_option = TSC.ImageRequestOptions(imageresolution=TSC.ImageRequestOptions.Resolution.High)
with server.auth.sign_in(tableau_auth):
    for view_item in all_views:
        #Générer une image png
        server.views.populate_image(view_item, req_options=image_req_option)
        with open(f'{view_item.name}.png', 'wb') as f:
	        f.write(view_item.image)

ImageRequestOptions

Use this class to specify the resolution of the view returned as an image. You can also use this class to specify view filters to be applied when the image is generated. See views.populate_image.

Il semble que vous puissiez spécifier la résolution avec la résolution de l'image.

ImageRequestOptions(imageresolution=None)

imageresolution

Si non spécifié, la sortie aura une largeur de 784 pixels, et si vous spécifiez Rresolution.High (valeur la plus élevée) comme ci-dessus, elle sera de 1568 pixels (l'image conservera le rapport hauteur / largeur, donc la largeur verticale changera en fonction de la largeur horizontale. Faire).

vf (filtre)

Vous pouvez également filtrer la vue au format image.

# (optional) set a view filter
image_req_option.vf('Category', 'Furniture')

Voir aussi: Classe ImageRequestOptions

Résumé

# -*- coding: utf-8 -*-
# Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:21:23) [MSC v.1916 32 bit (Intel)] on win32
import tableauserverclient as TSC

#Entrée des informations d'identification
username= 'contribution'
password= 'contribution'
siteid = 'contribution'
serverurl = 'contribution'

tableau_auth = TSC.TableauAuth(username, password, siteid)
server = TSC.Server(serverurl, use_server_version=True)

with server.auth.sign_in(tableau_auth):
    all_views, pagination_item = server.views.get()

pdf_req_option = TSC.PDFRequestOptions(page_type=TSC.PDFRequestOptions.PageType.A4,
                 orientation=TSC.PDFRequestOptions.Orientation.Landscape)
with server.auth.sign_in(tableau_auth):
    for view_item in all_views:
        #Générer une image PDF
        server.views.populate_pdf(view_item, req_options=pdf_req_option)
        with open(f'{view_item.name}.pdf', 'wb') as f:
            f.write(view_item.pdf)

image_req_option = TSC.ImageRequestOptions(imageresolution=TSC.ImageRequestOptions.Resolution.High)
with server.auth.sign_in(tableau_auth):
    for view_item in all_views:
        #Générer une image png
        server.views.populate_image(view_item, req_options=image_req_option)
        with open(f'{view_item.name}.png', 'wb') as f:
            f.write(view_item.image)

Veuillez noter que les images et les fichiers PDF de toutes les vues sur le serveur sont affichés dans la même hiérarchie que le script ci-dessus. Veuillez spécifier le fichier de sortie comme vous le souhaitez.


Tableau Server Client (Python) API reference Tableau REST API - API Reference—All Methods

Recommended Posts

Utilisez TSC (Tableau Server Client) pour obtenir des fichiers PDF et png à partir du serveur Tableau.