Importation et exportation
Avant d’utiliser les API ci-dessous, suivez l’intégration des imports/exports. Votre application doit fournir les contrats de téléversement, conversion, suivi des tâches et téléchargement autorisé. Les API de snapshot nécessitent aussi un backend de conversion. L’exemple Exchange concerne Sheets ; vérifiez séparément les autres produits et formats.
Formats pris en charge
Le tableau décrit les API du navigateur présentées ici. La conversion des fichiers Office nécessite un backend compatible avec le même type de document et le même format.
| Importation | Exportation |
|---|---|
.xls, .xlsx, .csv, .tsv | .xlsx, .csv, .tsv |
API Facade
Importation
Remarque sur le mode plugin
L’importation manuelle du package Facade n’est nécessaire qu’en mode plugin. Le mode prédéfini inclut déjà le package Facade correspondant, aucune importation supplémentaire n’est donc requise.
import '@univerjs-pro/exchange-client/facade'import '@univerjs-pro/sheets-exchange-client/facade'Importation d’un fichier .xlsx
Importer un fichier .xlsx et obtenir son unitId
Attention
Cette méthode nécessite la collaboration : elle crée un document sur le serveur et renvoie un unitId. Si la
collaboration n’est pas activée, utilisez l’importation par instantané.
Lorsque l’édition collaborative est activée, chaque document possède un unitId unique. L’appel à univerAPI.importSheetToUnitIdAsync avec le paramètre file renvoie le unitId permettant d’accéder au document. Le paramètre file peut être un objet File ou l’URL d’un fichier distant.
import '@univerjs-pro/collaboration-client/facade'const unitId = await univerAPI.importSheetToUnitIdAsync(file)if (unitId) { await univerAPI.getCollaboration().loadSheetAsync(unitId)}Importer un fichier .xlsx et obtenir un objet IWorkbookData
L’importation par instantané ne nécessite pas la collaboration. Pour les documents collaboratifs, utilisez
l’importation par unitId.
L’appel à univerAPI.importSheetToSnapshotAsync pour importer un fichier .xlsx renvoie les données du document au format IWorkbookData.
// Accept a File objectconst snapshot = await univerAPI.importSheetToSnapshotAsync(file)// Or accept a remote file URL// const snapshot = await univerAPI.importSheetToSnapshotAsync('https://example.com/filename.xlsx');// Create a new workbook via snapshotif (snapshot) univerAPI.createWorkbook(snapshot)Exportation d’un fichier .xlsx
Exporter un fichier .xlsx à l’aide de son unitId
Attention
L’exportation par unitId nécessite la collaboration. Si la collaboration n’est pas activée, utilisez l’exportation
par instantané.
Lorsque l’édition collaborative est activée, chaque document possède un unitId unique. L’appel à univerAPI.exportSheetByUnitIdAsync avec le paramètre unitId renvoie un objet File.
const fWorkbook = univerAPI.getActiveWorkbook()const unitId = fWorkbook.getId()const file = await univerAPI.exportSheetByUnitIdAsync(unitId)// Download the file through the Facade APIif (file) univerAPI.downloadFile(file, 'univer', 'xlsx')Exporter un fichier .xlsx à l’aide d’un objet IWorkbookData
L’exportation par instantané ne nécessite pas la collaboration et convient aux flux de travail locaux.
L’appel à univerAPI.exportSheetBySnapshotAsync avec les données IWorkbookData renvoie un objet File.
const fWorkbook = univerAPI.getActiveWorkbook()const snapshot = fWorkbook.save()const file = await univerAPI.exportSheetBySnapshotAsync(snapshot)// Download the file through the Facade APIif (file) univerAPI.downloadFile(file, 'univer', 'xlsx')Suppression des menus et des interactions UI d’importation et d’exportation intégrés
Univer a supprimé les menus et les interactions UI d’importation et d’exportation intégrés. Les services sous-jacents et les API Facade restent disponibles.
Si votre application doit conserver les menus et les interactions UI d’importation et d’exportation existants, consultez l’exemple de migration des menus et des interactions UI d’importation et d’exportation intégrés pour effectuer la migration avec un plugin personnalisé. L’exemple fournit le code source complet, consultable en ligne et téléchargeable.
Que pensez-vous de ce guide ?