spxlsx
SharePoint-Listen und Excel-Arbeitsmappen direkt aus DuckDB abfragen
Maintainer: paulmupeters
Installation und Laden
INSTALL spxlsx FROM community;LOAD spxlsx;Beispiel
LOAD spxlsx;
-- Authenticate with SharePoint using the built-in OAuth device flowCREATE SECRET (TYPE sharepoint, PROVIDER oauth);
-- Read rows from a SharePoint listSELECT ID, Title, CreatedFROM read_sharepoint_list( 'https://contoso.sharepoint.com/sites/MyTeam/Lists/Projects', top := 10);
-- Read an Excel workbook stored in SharePointSELECT *FROM read_sharepoint_excel( 'https://contoso.sharepoint.com/sites/Finance/Documents/Budget2024.xlsx', sheet := 'Q1 Data')LIMIT 10;
-- Download an Excel workbook stored in SharePointSELECT sharepoint_download_excel( 'https://contoso.sharepoint.com/sites/Finance/Documents/Report.xlsx');Über spxlsx
spxlsx ist eine DuckDB-Erweiterung zum direkten Abfragen von Microsoft-SharePoint-Daten aus SQL.
Sie nutzt die Microsoft Graph API für Authentifizierung und Datenzugriff. Die Erweiterung setzt
auf DuckDBs Erweiterung excel zum Lesen von Excel-Arbeitsmappen. Beim Lesen von
in SharePoint gehosteten Excel-Arbeitsmappen muss die Erweiterung excel daher installiert sein.
Repository: https://github.com/paulmupeters/spxlsx
Kernfunktionen
- Tabellenfunktion
read_sharepoint_list(url, filter := ..., top := ...)für SharePoint-Listen - Tabellenmakro
read_sharepoint_excel(url, ...), das eine in SharePoint gehostete Excel-Arbeitsmappe liest - Skalarfunktion
sharepoint_download_excel(url), die eine in SharePoint gehostete Arbeitsmappe in eine temporäre lokale Datei herunterlädt - SharePoint-Authentifizierung über DuckDB-Secrets mit
PROVIDER oauthoderPROVIDER token - Automatischer Versuch, DuckDBs Erweiterung
excelzu laden, wennLOAD spxlsxausgeführt wird
Authentifizierung
Die Erweiterung registriert einen eigenen SharePoint-Secret-Typ. Interaktive Authentifizierung:
CREATE SECRET (TYPE sharepoint, PROVIDER oauth);Oder durch Angabe eines vorhandenen Zugriffstokens:
CREATE SECRET (TYPE sharepoint, PROVIDER token, TOKEN 'your-access-token');Persistente Secrets werden ebenfalls unterstützt:
CREATE PERSISTENT SECRET (TYPE sharepoint, PROVIDER oauth);SharePoint-Listen abfragen
SharePoint-Listenelemente als DuckDB-Tabelle lesen:
SELECT *FROM read_sharepoint_list('https://contoso.sharepoint.com/sites/MyTeam/Lists/Projects');Optionale Pushdown-artige Parameter:
SELECT ID, Title, CreatedFROM read_sharepoint_list( 'https://contoso.sharepoint.com/sites/MyTeam/Lists/Projects', filter := 'Status eq ''Active''', top := 100)ORDER BY Created DESC;SharePoint-Spaltentypen werden zur Bind-Zeit anhand der Listenmetadaten auf DuckDB-Typen abgebildet; komplexe Lookup-/Personenfelder erscheinen als Zeichenketten.
In SharePoint gespeicherte Excel-Dateien abfragen
Der schnelle Weg ist das eingebaute Makro read_sharepoint_excel(...):
SELECT *FROM read_sharepoint_excel( 'https://contoso.sharepoint.com/sites/Finance/Documents/Budget2024.xlsx', sheet := 'Q1 Data', header := true, ignore_errors := true);Unterstützte Parameter spiegeln gängige Optionen von read_xlsx(...):
sheetheaderall_varcharignore_errorsrangestop_at_emptyempty_as_varchar
Für fortgeschrittenere Excel-Workflows nutzen Sie den Download-Helfer direkt mit read_xlsx(...):
SELECT *FROM read_xlsx( (SELECT sharepoint_download_excel( 'https://contoso.sharepoint.com/sites/Finance/Documents/Report.xlsx' )), sheet := 'Summary', range := 'A1:F100');Hinweise
Diese Erweiterung ist derzeit experimentell und noch nicht produktionserprobt. Sie soll SharePoint-Listendaten und in SharePoint gehostete Excel-Arbeitsmappen zu erstklassigen Abfragequellen in DuckDB machen, insbesondere für Ad-hoc-Analysen und schlanke Integrationsabläufe.
Hinzugefügte Funktionen
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| __sharepoint_require_excel | scalar | NULL | NULL | |
| read_sharepoint | table | NULL | NULL | |
| read_sharepoint_excel | table_macro | NULL | NULL | |
| read_sharepoint_list | table | NULL | NULL | |
| sharepoint_download_excel | scalar | NULL | NULL |
Überladene Funktionen
Diese Erweiterung fügt keine Funktionsüberladungen hinzu.
Hinzugefügte Typen
Diese Erweiterung fügt keine Typen hinzu.
Hinzugefügte Einstellungen
Diese Erweiterung fügt keine Einstellungen hinzu.