[PYTHON] Verwenden Sie TSC (Tableau Server Client), um PDF und PNG vom Tableau Server abzurufen.

Einführung

Verwenden Sie python3.8.0. TSC muss installiert sein. github( https://github.com/tableau/server-client-python ) PyPI( https://pypi.org/project/tableauserverclient/ )

pip install tableauserverclient
import tableauserverclient as TSC

Geben Sie die Konto- und Serverinformationen ein, die für Benutzername, Kennwort, Site-ID und Server-URL verwendet werden. Außerdem möchte ich die neueste Version verwenden, daher setze ich die Option user_server_version auf True.

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

Führen Sie den folgenden Code aus, um festzustellen, ob die Ansicht auf Ihrer Site vorhanden ist. Stellen Sie außerdem sicher, dass Sie "all_views" ausführen, da es später verwendet wird.

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

Als PDF speichern

Wenn Sie die Ansicht im Dateiformat erhalten möchten: PDF, Größe: A4, Ausrichtung: Querformat, verwenden Sie den folgenden Code.

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:
        #PDF-Bild erstellen
        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 Sie können die Größe des PDFs angeben. Der Standardwert ist "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 Sie können die Ausrichtung der Seite festlegen. Der Standardwert ist "Porträt" (vertikal). -Orientation.Portrait: Vertikal -Orientation.Landscape: Horizontal

vf (Filter)

Sie können auch die vf -Methode für diese Klasse verwenden, um die Ansicht zu filtern. Zum Beispiel

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

Dann wird die Ansicht mit "Region", gefiltert nach "West", in PDF konvertiert.

Siehe auch: PDFRequestOptions-Klasse

Als PNG speichern

Verwenden Sie den folgenden Code, um die Ansicht im Dateiformat zu erhalten: PNG und Ausrichtung: Querformat.

image_req_option = TSC.ImageRequestOptions(imageresolution=TSC.ImageRequestOptions.Resolution.High)
with server.auth.sign_in(tableau_auth):
    for view_item in all_views:
        #PNG-Bild generieren
        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.

Es scheint, dass Sie die Auflösung mit Bildauflösung angeben können.

ImageRequestOptions(imageresolution=None)

imageresolution

Wenn nicht angegeben, ist die Ausgabe 784 Pixel breit, und wenn "Rresolution.High" (höchster Wert) wie oben angegeben ist, sind es 1568 Pixel (das Bild behält das Seitenverhältnis bei, sodass sich die vertikale Breite entsprechend der horizontalen Breite ändert. Machen).

vf (Filter)

Sie können die Ansicht auch im Bildformat filtern.

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

Siehe auch: ImageRequestOptions-Klasse

Zusammenfassung

# -*- 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

#Eingabe der Anmeldeinformationen
username= 'Eingang'
password= 'Eingang'
siteid = 'Eingang'
serverurl = 'Eingang'

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:
        #PDF-Bild erstellen
        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:
        #PNG-Bild generieren
        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)

Bitte beachten Sie, dass die Bilder und PDFs aller Ansichten auf dem Server in derselben Hierarchie wie das obige Skript ausgegeben werden. Bitte geben Sie die Ausgabedatei nach Ihren Wünschen an.


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

Recommended Posts

Verwenden Sie TSC (Tableau Server Client), um PDF und PNG vom Tableau Server abzurufen.