Настройка поведения импорта

Если стандартное поведение импорта документов в Univer вам не подходит, его можно настроить с помощью Facade API.

Чаще всего требуется скрыть пункт импорта, добавленный плагином, или сразу открыть успешно импортированный файл в текущем экземпляре. Ниже приведены примеры кода для этих случаев.

Как скрыть пункт импорта

Режим пресетов

TypeScript
UniverSheetsCorePreset({  menu: {    'sheets-exchange-client.operation.exchange': {      hidden: true,    },  },})

Режим плагинов

TypeScript
univer.registerPlugin(UniverSheetsUIPlugin, {  menu: {    'sheets-exchange-client.operation.exchange': {      hidden: true,    },  },})

Настройка импорта PPTX в Univer Slides

Univer Slides не поддерживает режим пресетов. Чтобы скрыть меню импорта и экспорта PPTX в режиме плагинов, передайте конфигурацию menu в UniverSlidesExchangeClientPlugin:

TypeScript
univer.registerPlugin(UniverSlidesExchangeClientPlugin, {  menu: {    'slides-exchange-client.operation.exchange': {      hidden: true,    },  },})

Чтобы импортировать файл .pptx по URL, сначала получите объект File:

TypeScript
const url = 'https://example.com/filename.pptx' // Your PowerPoint file URLasync function fetchPPTXFile(url) {  try {    const response = await fetch(url)    const blob = await response.blob()    return new File([blob], 'filename.pptx', {      type: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',    })  } catch (error) {    console.error('Failed to fetch the file:', error)  }}const file = await fetchPPTXFile(url)

Если вы используете серверный рабочий процесс с юнитами на сервере, импортируйте файл PPTX и загрузите созданный юнит Slides:

TypeScript
import { UniverInstanceType } from '@univerjs/core'const unitId = await univerAPI.importSlideToUnitIdAsync(file)if (unitId) {  univerAPI.loadServerUnit(unitId, UniverInstanceType.UNIVER_SLIDE)}

Если требуется только локальный рендеринг, импортируйте файл как данные слайдов и создайте презентацию:

TypeScript
const slideData = await univerAPI.importSlideToSnapshotAsync(file)if (slideData) {  univerAPI.createPresentation(slideData)}

Импорт документа по URL

Сначала необходимо получить объект File. Обычно его получают при загрузке файла пользователем или загружают по URL. В следующем примере файл .xlsx загружается по URL и преобразуется в объект File.

TypeScript
const url = 'https://example.com/filename.xlsx' // Your Excel file URL// Function to fetch and convert the URL to a File object.// Here, the fetch API is used to directly obtain the file,// which may need to be modified according to the actual situation,// such as file address authentication and cross-domain issues.async function fetchExcelFile(url) {  try {    const response = await fetch(url)    const blob = await response.blob()    return new File([blob], 'filename.xlsx', { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })  } catch (error) {    console.error('Failed to fetch the file:', error)  }}// Fetch the file and import it as a snapshot// If the URL file address is not authenticated,// you can directly pass it to the importSheetToSnapshotAsync or importSheetToUnitIdAsync methodconst file = await fetchExcelFile(url)

Если вы используете совместное редактирование, метод univerAPI.importSheetToUnitIdAsync позволяет импортировать файл .xlsx и получить unitId, после чего книгу можно загрузить с помощью метода univerAPI.loadServerUnit.

TypeScript
import { UniverInstanceType } from '@univerjs/core'// When using presets, you can import `UniverInstanceType` from `@univerjs/presets`import { UniverInstanceType } from '@univerjs/presets'univerAPI.importSheetToUnitIdAsync(file).then((unitId) => {  console.log('Unit ID created:', unitId)  univerAPI.loadServerUnit(unitId, UniverInstanceType.UNIVER_SHEET)})

Если же нужно только импортировать файл .xlsx как снимок состояния (IWorkbookData) и отобразить его в текущем экземпляре, используйте метод univerAPI.importSheetToSnapshotAsync.

TypeScript
// Modify the following code according to the actual situationuniverAPI.importSheetToSnapshotAsync(file).then((snapshot) => {  console.log('Snapshot created:', snapshot)  // Create a new workbook with the snapshot  univerAPI.createWorkbook(snapshot)})

© 2026 DreamNum Co., Ltd.