Esquema
La función de esquema (también conocida como agrupación o esquema de dimensiones) le permite agrupar filas o columnas en una hoja de trabajo. Esto es útil para organizar y resumir grandes conjuntos de datos mediante la creación de secciones plegables.
Introducción
En Univer Sheets, la función de esquema le permite:
- Agrupar filas o columnas: crear grupos jerárquicos de filas o columnas para organizar datos.
- Contraer y expandir grupos: mostrar u ocultar filas o columnas agrupadas con un solo clic.
- Anidado grupos: cree múltiples niveles de grupos para jerarquías de datos complejas.
Los grupos de esquema se usan comúnmente en los siguientes escenarios:
- Resumen de datos detallados: agrupe filas detalladas debajo de filas de resumen para crear una vista más limpia.
- Organización de conjuntos de datos grandes: agrupe columnas o filas relacionadas para facilitar la navegación.
- Creación de informes plegables: permita a los usuarios expandir o contraer secciones de un informe según sea necesario.
Complemento Modo
Instalación
pnpm add @univerjs-pro/sheets-outline @univerjs-pro/sheets-outline-uinpm install @univerjs-pro/sheets-outline @univerjs-pro/sheets-outline-uiyarn add @univerjs-pro/sheets-outline @univerjs-pro/sheets-outline-uibun add @univerjs-pro/sheets-outline @univerjs-pro/sheets-outline-uiUso
import { UniverSheetsOutlinePlugin } from '@univerjs-pro/sheets-outline'import { UniverSheetsOutlineUIPlugin } from '@univerjs-pro/sheets-outline-ui'import SheetsOutlineUIEnUS from '@univerjs-pro/sheets-outline-ui/locale/en-US'import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import '@univerjs-pro/sheets-outline/facade'import '@univerjs-pro/sheets-outline-ui/lib/index.css'const univer = new Univer({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( SheetsOutlineUIEnUS, ), },})univer.registerPlugin(UniverSheetsOutlinePlugin)univer.registerPlugin(UniverSheetsOutlineUIPlugin)Si tiene una licencia comercial para Univer, consulte Uso de la licencia en el cliente para la configuración.
Compatibilidad móvil
Configure primero el editor móvil. En la inicialización en modo plugin de esta página, sustituya los registros de escritorio siguientes por las exportaciones móviles de los mismos paquetes antes de abrir un documento. Conserve modelos, estilos, traducciones e importaciones Facade; no registre ambas variantes.
| Paquete | Registro de escritorio | Registro móvil |
|---|---|---|
@univerjs-pro/sheets-outline-ui | UniverSheetsOutlineUIPlugin | UniverSheetsOutlineMobileUIPlugin |
Preestablecido Modo
La función de esquema está incluida en el ajuste preestablecido @univerjs/preset-sheets-advanced.
Instalación
pnpm add @univerjs/preset-sheets-advancednpm install @univerjs/preset-sheets-advancedyarn add @univerjs/preset-sheets-advancedbun add @univerjs/preset-sheets-advancedUso
import { UniverSheetsAdvancedPreset } from '@univerjs/preset-sheets-advanced'import UniverPresetSheetsAdvancedEnUS from '@univerjs/preset-sheets-advanced/locales/en-US'import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'import '@univerjs/preset-sheets-core/lib/index.css'import '@univerjs/preset-sheets-advanced/lib/index.css'const { univerAPI } = createUniver({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( UniverPresetSheetsCoreEnUS, UniverPresetSheetsAdvancedEnUS, ), }, presets: [ UniverSheetsCorePreset(), UniverSheetsAdvancedPreset(), ],})Si tiene una licencia comercial de Univer, consulte Uso de la licencia en el cliente para la configuración.
API de Facade
Las definiciones completas del tipo de API de Facade se pueden encontrar en FacadeAPI.
Importación
Plugin mode note
Solo el modo complemento requiere importar manualmente el paquete Facade. El modo preestablecido ya incluye el paquete Facade correspondiente, por lo que no se necesita ninguna importación adicional.
import '@univerjs-pro/sheets-outline/facade'Creación de contornos de filas
Puedes crear un grupo de contornos de filas usando la API de Facade:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Group rows 2 to 6 (0-based index: startRow=1, numRows=5)fWorksheet.addRowOutline(1, 5)Creación de contornos de columnas
Del mismo modo, puedes crear un grupo de contornos de columnas:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Group columns B to E (0-based index: startColumn=1, numColumns=4)fWorksheet.addColumnOutline(1, 4)Contracción y expansión de contornos
Puedes contraer o expandir un grupo de esquemas mediante programación:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const rowOutlines = fWorksheet.getDimensionOutlines(univerAPI.Enum.DimensionOutlineAxis.ROW)if (rowOutlines.length > 0) { // Collapse the first row outline group fWorksheet.setDimensionOutlineCollapsed(rowOutlines[0].id, true) // Expand it later fWorksheet.setDimensionOutlineCollapsed(rowOutlines[0].id, false)}Eliminar Contornos
Puedes eliminar un grupo de esquemas específico por su ID:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const rowOutlines = fWorksheet.getDimensionOutlines(univerAPI.Enum.DimensionOutlineAxis.ROW)if (rowOutlines.length > 0) { fWorksheet.removeDimensionOutline(rowOutlines[0].id)}Borrar contornos en un rango
Puedes borrar todos los grupos de esquemas dentro de un rango específico:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Remove all row outline groups fully contained in rows 2 to 10fWorksheet.clearDimensionOutlines(univerAPI.Enum.DimensionOutlineAxis.ROW, 1, 9)Consultar esquemas
Puedes recuperar todos los grupos de esquemas en una hoja de trabajo:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Get all row outlinesconst rowOutlines = fWorksheet.getDimensionOutlines(univerAPI.Enum.DimensionOutlineAxis.ROW)rowOutlines.forEach((outline) => { console.log(outline.id, outline.start, outline.end, outline.collapsed)})// Get all outlines (both row and column)const allOutlines = fWorksheet.getDimensionOutlines()Estructura de datos del esquema
Cada grupo de esquemas tiene las siguientes propiedades:
| Propiedad | Tipo | Descripción |
|---|---|---|
id | string | Identificador único para el grupo de esquema |
unitId | string | El ID de la unidad del libro de trabajo |
subUnitId | string | El ID de la hoja de cálculo |
axis | DimensionOutlineAxis | El eje del esquema (row o column) |
start | number | Índice inicial inclusivo de base cero |
end | number | Índice final inclusivo de base cero |
collapsed | boolean | Si el grupo está colapsado actualmente |
Validación y errores
Al crear grupos de esquemas, lo siguiente se realizan validaciones:
- Rango no válido: el rango debe ser válido (no negativo, recuento distinto de cero).
- Fuera de límites: el rango debe estar dentro de los límites de la hoja de cálculo.
- Grupos cruzados: los grupos nuevos no pueden cruzar los grupos existentes.
- Profundidad máxima: existe una profundidad máxima de anidamiento para los grupos de esquema.
El rango para desagrupar debe contener completamente el rango del grupo de esquema; la validación fallará.
Si falla una validación, el comando no se ejecutará y se emitirá un error a través de SheetsOutlineErrorService.
¿Cómo es esta guía?