feat: enhance CursosArchivo component to parse CSV files and display extracted content
This commit is contained in:
parent
0ba3f2e898
commit
39abdab2ad
|
@ -1,8 +1,10 @@
|
||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
|
import Papa from 'papaparse';
|
||||||
|
|
||||||
const Cursos = () => {
|
const CursosArchivo = () => {
|
||||||
const [modoManual, setModoManual] = useState(true);
|
const [modoManual, setModoManual] = useState(true);
|
||||||
const [archivo, setArchivo] = useState(null);
|
const [archivo, setArchivo] = useState(null);
|
||||||
|
const [datosCSV, setDatosCSV] = useState([]);
|
||||||
|
|
||||||
const manejarArchivo = (e) => {
|
const manejarArchivo = (e) => {
|
||||||
const file = e.target.files[0];
|
const file = e.target.files[0];
|
||||||
|
@ -20,8 +22,19 @@ const Cursos = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const extraerContenido = () => {
|
const extraerContenido = () => {
|
||||||
// Lógica para procesar el archivo
|
if (!archivo) return;
|
||||||
console.log('Archivo seleccionado:', archivo);
|
|
||||||
|
Papa.parse(archivo, {
|
||||||
|
header: true,
|
||||||
|
skipEmptyLines: true,
|
||||||
|
complete: (result) => {
|
||||||
|
console.log('Contenido CSV:', result.data);
|
||||||
|
setDatosCSV(result.data);
|
||||||
|
},
|
||||||
|
error: (error) => {
|
||||||
|
console.error('Error al leer el CSV:', error.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -57,6 +70,7 @@ const Cursos = () => {
|
||||||
<input
|
<input
|
||||||
type="file"
|
type="file"
|
||||||
id="archivo"
|
id="archivo"
|
||||||
|
accept=".csv"
|
||||||
onChange={manejarArchivo}
|
onChange={manejarArchivo}
|
||||||
className="hidden"
|
className="hidden"
|
||||||
/>
|
/>
|
||||||
|
@ -68,10 +82,19 @@ const Cursos = () => {
|
||||||
>
|
>
|
||||||
Extraer contenido
|
Extraer contenido
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
{datosCSV.length > 0 && (
|
||||||
|
<div className="mt-6 text-left w-full max-w-md">
|
||||||
|
<h3 className="font-bold mb-2">Contenido extraído:</h3>
|
||||||
|
<pre className="bg-gray-100 p-2 rounded overflow-x-auto text-sm">
|
||||||
|
{JSON.stringify(datosCSV, null, 2)}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Cursos;
|
export default CursosArchivo;
|
Loading…
Reference in New Issue