Hoy vamos a aprender cómo podemos automatizar tareas sobre un archivo en OneDrive usando un Script de Python y conexión remota.
1. Configura tu archivo de Excel en OneDrive
- Sube el archivo a OneDrive:
- Guarda tu archivo de Excel en tu carpeta de OneDrive.
- Asegúrate de saber la ubicación exacta del archivo (puedes obtener la URL del archivo en la web de OneDrive).
- Asegúrate de tener el archivo listo:
- Crea una tabla en tu hoja de Excel (igual que en la solución anterior) con columnas como
Fecha
yCantidad
.
- Crea una tabla en tu hoja de Excel (igual que en la solución anterior) con columnas como
2. Instala Python y las bibliotecas necesarias
Si no tienes Python instalado, descárgalo desde python.org.
Después, instala las bibliotecas necesarias ejecutando estos comandos en tu terminal o línea de comandos:
pip install pandas openpyxl onedrivesdk
3. Crea un script en Python
Usaremos la biblioteca onedrivesdk
para conectarnos a OneDrive y pandas
para editar el archivo Excel.
Aquí tienes un ejemplo de script:
import pandas as pd from datetime import datetime from onedrivesdk import OneDriveClient, AuthProvider, HttpProvider, FileSystemTokenBackend # Configura tu cliente de OneDrive redirect_uri = 'http://localhost:8080/' client_secret = 'TU_CLIENT_SECRET' client_id = 'TU_CLIENT_ID' scopes = ['wl.signin', 'wl.offline_access', 'onedrive.readwrite'] http_provider = HttpProvider() auth_provider = AuthProvider( http_provider=http_provider, client_id=client_id, client_secret=client_secret, auth_server_url="https://login.live.com/oauth20_authorize.srf", auth_token_url="https://login.live.com/oauth20_token.srf", redirect_uri=redirect_uri, scopes=scopes, ) client = OneDriveClient("https://api.onedrive.com/v1.0/", auth_provider, http_provider) auth_provider.authenticate() # Ruta del archivo en OneDrive onedrive_file_path = "/Documents/MisDatos.xlsx" # Descarga el archivo Excel file_item = client.item(drive="me", path=onedrive_file_path).get() with open("temp.xlsx", "wb") as local_file: client.item(drive="me", id=file_item.id).download(local_file) # Abre el archivo Excel y añade la nueva fila df = pd.read_excel("temp.xlsx", sheet_name="Hoja1") nueva_fila = {"Fecha": datetime.now().strftime("%Y-%m-%d"), "Cantidad": 100} # Ajusta cantidad df = df.append(nueva_fila, ignore_index=True) # Guarda los cambios y vuelve a subir el archivo df.to_excel("temp.xlsx", index=False) with open("temp.xlsx", "rb") as updated_file: client.item(drive="me", id=file_item.id).upload(updated_file) print("Cantidad añadida con éxito.")
4. Automación con tareas programadas
- Guarda el script como
actualizar_excel.py
. - Usa una herramienta gratuita para programar su ejecución semanalmente:
- En Windows, usa el Programador de tareas.
- En Linux/Mac, usa
cron
.
Ejemplo de cron (para ejecutar cada lunes a las 9:00 AM):
0 9 * * 1 python3 /ruta/a/actualizar_excel.py
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.