La interfaz utiliza el complemento xlsx para leer datos de archivos de Excel.

El uso xlsxde complementos para leer datos de archivos de Excel en el front-end tiene las siguientes ventajas y desventajas y es adecuado para los siguientes escenarios:

ventaja:

  1. Simple y fácil de usar: xlsxel complemento proporciona una API simple para leer datos de archivos de Excel sin configuraciones ni dependencias complejas.
  2. Funcionalidad completa: xlsxel complemento admite la lectura de varios formatos de archivos de Excel, incluidos formatos comunes como XLS y XLSX, y puede leer múltiples hojas de trabajo y múltiples tipos de datos.
  3. Soporte multiplataforma: xlsxel complemento se puede utilizar en navegadores y entornos Node.js, adecuado para las necesidades de procesamiento de datos de Excel de front-end y back-end.
  4. Conversión de datos: xlsxel complemento puede convertir datos de Excel a formatos de datos comunes, como JSON y CSV, para facilitar su posterior procesamiento y visualización en el front-end.

defecto:

  1. Problemas de rendimiento: para archivos grandes de Excel, xlsxel complemento puede causar problemas de rendimiento porque requiere que todo el archivo se cargue en la memoria para su análisis.
  2. Compatibilidad del navegador: debido a las restricciones de la política de seguridad del navegador, es posible que algunos navegadores no admitan la lectura directa de archivos locales y sea necesario utilizar una API de back-end para recibir los archivos cargados.

escenas a utilizar:

  1. Importación de datos: cuando los usuarios necesitan importar datos de archivos de Excel a aplicaciones de front-end, pueden usar xlsxcomplementos para leer los datos de archivos de Excel y convertirlos a formatos de datos utilizables por el front-end.
  2. Análisis de datos: para aplicaciones que requieren análisis de datos, puede utilizar xlsxcomplementos para leer datos en archivos de Excel y realizar estadísticas, cálculos y otras operaciones.
  3. Visualización de datos: cuando necesite mostrar datos en un archivo de Excel en la interfaz, puede usar xlsxun complemento para leer los datos del archivo de Excel y convertirlos a un formato adecuado para su visualización, como tablas, gráficos, etc.

Cabe señalar que para archivos de Excel grandes o escenarios que requieren un procesamiento de datos complejo, es posible que deba considerar el uso de una biblioteca de procesamiento de Excel de back-end para mejorar el rendimiento y la flexibilidad.

Descripción detallada del código

Para utilizar el complemento para leer datos de archivos de Excel en la interfaz xlsx, primero debe instalar el complemento xlsx. Se puede instalar usando el siguiente comando:

npm install xlsx

Una vez completada la instalación, puede importar el módulo en el código de interfaz xlsxy utilizar los métodos que proporciona para leer los datos del archivo Excel. Aquí hay un código de muestra:

import XLSX from 'xlsx';

// 读取Excel文件数据
function readExcelFile(file) {
    
    
  return new Promise((resolve, reject) => {
    
    
    const reader = new FileReader();
    reader.onload = (e) => {
    
    
      const data = new Uint8Array(e.target.result);
      const workbook = XLSX.read(data, {
    
     type: 'array' });
      const worksheet = workbook.Sheets[workbook.SheetNames[0]];
      const jsonData = XLSX.utils.sheet_to_json(worksheet, {
    
     header: 1 });
      resolve(jsonData);
    };
    reader.onerror = (e) => {
    
    
      reject(e);
    };
    reader.readAsArrayBuffer(file);
  });
}

// 选择文件并读取数据
document.getElementById('file-input').addEventListener('change', (e) => {
    
    
  const file = e.target.files[0];
  if (file) {
    
    
    readExcelFile(file).then((data) => {
    
    
      console.log(data);
      // 在这里处理读取到的Excel数据
    }).catch((error) => {
    
    
      console.error(error);
    });
  }
});

En el código anterior, definimos una readExcelFilefunción para leer datos de archivos de Excel. Esta función usa FileReaderun objeto para leer el archivo en datos binarios, luego usa XLSX.readun método para analizar los datos binarios en un objeto de libro de trabajo y luego usa XLSX.utils.sheet_to_jsonun método para convertir los datos de la hoja de trabajo al formato JSON. Finalmente, usamos Promisepara devolver los datos leídos.

En la página, utilizamos <input type="file">elementos para seleccionar archivos de Excel y changeescuchar cambios en la selección de archivos a través de eventos. Cuando el usuario selecciona el archivo, llamamos readExcelFilea la función para leer los datos del archivo y thenprocesar los datos leídos en la devolución de llamada.

Nota: Debido a las restricciones de la política de seguridad del navegador, es posible que algunos navegadores no admitan la lectura directa de archivos locales. En este caso, es posible que necesite utilizar la API de backend para recibir el archivo de Excel cargado y devolverlo al frontend después de analizar los datos del archivo en el backend.

múltiples métodos

Cuando utilice xlsxun complemento para leer datos de archivos de Excel en la interfaz, puede utilizar los siguientes métodos:

1. Lea todos los datos del libro de trabajo:

const readWorkbook = (workbook) => {
    
    
  const worksheet = workbook.Sheets[workbook.SheetNames[0]];
  const jsonData = XLSX.utils.sheet_to_json(worksheet, {
    
     header: 1 });
  console.log(jsonData);
};
const readExcelFile = (file) => {
    
    
  return new Promise((resolve, reject) => {
    
    
    const reader = new FileReader();
    reader.onload = (e) => {
    
    
      const data = new Uint8Array(e.target.result);
      const workbook = XLSX.read(data, {
    
     type: 'array' });
      readWorkbook(workbook);
      resolve();
    };
    reader.onerror = (e) => {
    
    
      reject(e);
    };
    reader.readAsArrayBuffer(file);
  });
};

En este método, primero definimos una readWorkbookfunción para leer los datos del libro de trabajo. Luego, en readExcelFilela función, usamos FileReaderel objeto para leer el archivo en datos binarios y luego usamos XLSX.readel método para analizar los datos binarios en un objeto de libro. Finalmente, llamamos readWorkbooka la función para leer los datos del libro de trabajo.

2. Lea los datos de la hoja de trabajo especificada:

const readWorksheet = (worksheet) => {
    
    
  const jsonData = XLSX.utils.sheet_to_json(worksheet, {
    
     header: 1 });
  console.log(jsonData);
};
const readExcelFile = (file) => {
    
    
  return new Promise((resolve, reject) => {
    
    
    const reader = new FileReader();
    reader.onload = (e) => {
    
    
      const data = new Uint8Array(e.target.result);
      const workbook = XLSX.read(data, {
    
     type: 'array' });
      const worksheet = workbook.Sheets['Sheet1']; // 指定工作表名称
      readWorksheet(worksheet);
      resolve();
    };
    reader.onerror = (e) => {
    
    
      reject(e);
    };
    reader.readAsArrayBuffer(file);
  });
};

En este método, primero definimos una readWorksheetfunción para leer los datos de la hoja de trabajo especificada. Luego, en readExcelFilela función, usamos FileReaderel objeto para leer el archivo en datos binarios y luego usamos XLSX.readel método para analizar los datos binarios en un objeto de libro. Finalmente, usamos workbook.Sheets['Sheet1']para obtener la hoja de trabajo con el nombre especificado y llamamos readWorksheeta la función para leer los datos de la hoja de trabajo.

3. Lea datos de varias hojas de trabajo:

const readWorkbook = (workbook) => {
    
    
  workbook.SheetNames.forEach((sheetName) => {
    
    
    const worksheet = workbook.Sheets[sheetName];
    const jsonData = XLSX.utils.sheet_to_json(worksheet, {
    
     header: 1 });
    console.log(`Sheet Name: ${
      
      sheetName}`);
    console.log(jsonData);
  });
};
const readExcelFile = (file) => {
    
    
  return new Promise((resolve, reject) => {
    
    
    const reader = new FileReader();
    reader.onload = (e) => {
    
    
      const data = new Uint8Array(e.target.result);
      const workbook = XLSX.read(data, {
    
     type: 'array' });
      readWorkbook(workbook);
      resolve();
    };
    reader.onerror = (e) => {
    
    
      reject(e);
    };
    reader.readAsArrayBuffer(file);
  });
};

En este método, primero definimos una readWorkbookfunción para leer varios datos de la hoja de trabajo en un bucle. Luego, en readExcelFilela función, usamos FileReaderel objeto para leer el archivo en datos binarios y luego usamos XLSX.readel método para analizar los datos binarios en un objeto de libro. Finalmente, utilizamos workbook.SheetNames.forEachpara recorrer los nombres de las hojas de trabajo y llamar readWorkbooka una función para leer los datos de cada hoja de trabajo.

Estos métodos se pueden seleccionar y combinar según las necesidades específicas para leer datos en archivos de Excel.

Supongo que te gusta

Origin blog.csdn.net/ACCPluzhiqi/article/details/131614062
Recomendado
Clasificación