<!DOCTYPE html>
<html lang="es"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Buscador de Resultados</title><style>body {font-family: Arial, sans-serif;background-color: #f4f4f4;margin: 0;padding: 0;display: flex;justify-content: center;align-items: center;height: 100vh;}
.container {width: 80%;max-width: 900px;background-color: #fff;padding: 20px;box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);border-radius: 8px;}
h1 {text-align: center;margin-bottom: 20px;color: #333;}
.search-bar {display: flex;justify-content: center;margin-bottom: 20px;}
.search-bar input[type="text"] {width: 70%;padding: 10px;font-size: 16px;border: 1px solid #ccc;border-radius: 4px;outline: none;}
.search-bar input[type="submit"] {padding: 10px 20px;margin-left: 10px;font-size: 16px;background-color: #28a745;color: #fff;border: none;border-radius: 4px;cursor: pointer;outline: none;}
.search-bar input[type="submit"]:hover {background-color: #218838;}
table {width: 100%;border-collapse: collapse;margin-top: 20px;}
table, th, td {border: 1px solid #ccc;}
th, td {padding: 12px;text-align: left;}
th {background-color: #f2f2f2;}
tr:nth-child(even) {background-color: #f9f9f9;}</style></head><body><div class="container"><h1>Buscador de Resultados</h1><div class="search-bar"><input type="text" placeholder="Buscar..."><input type="submit" value="Buscar"></div>
<table><thead><tr><th>ID</th><th>Nombre</th><th>Descripción</th><th>Fecha</th></tr></thead><tbody><tr><td>1</td><td>Ejemplo 1</td><td>Descripción del ejemplo 1</td><td>01/09/2024</td></tr><tr><td>2</td><td>Ejemplo 2</td><td>Descripción del ejemplo 2</td><td>02/09/2024</td></tr><tr><td>3</td><td>Ejemplo 3</td><td>Descripción del ejemplo 3</td><td>03/09/2024</td></tr></tbody></table></div><input type="file" id="csvFile" accept=".csv"><script>document.getElementById('csvFile').addEventListener('change', function (event) {const file = event.target.files[0];const reader = new FileReader();
reader.onload = function(e) {const text = e.target.result;const rows = text.split('\n').filter(row => row.trim() !== ''); // Filtra filas vacíasconst headers = rows[0].split(',').map(header => header.trim()); // Trimea los headers
const data = rows.slice(1).map(row => {const values = row.split(',').map(value => value.trim());let obj = {};headers.forEach((header, i) => {obj[header] = values[i] !== undefined ? values[i] : null; // Verifica si el valor está definido});return obj;});
console.log(data); // Aquí cada fila es un objeto};
reader.readAsText(file);});</script><script>async function obtenerCsvDesdeSharePoint() {try {const response = await fetch(fileUrl, {method: "GET",headers: {"Authorization": Bearer ${accessToken},"Accept": "text/csv"}});
if (!response.ok) {throw new Error(Error al obtener el archivo: ${response.status} ${response.statusText});}
const csvContent = await response.text();console.log(csvContent);const rows = csvContent.split('\n').map(row => row.split(','));console.log(rows);
} catch (error) {console.error("Hubo un problema al obtener el archivo CSV:", error);}}</script></body></html>