DesarrolloProtección de pagoDetalles
- Los cambios dentro del paquete son gratuitos.
- Si no responde en los 3 días siguientes a la entrega, el trabajo se acepta automáticamente.
El dinero queda reservado al pagar y solo se libera cuando usted acepta el trabajo.

Ejemplo de resultado
Unir los archivos de ventas mensuales de 9 tiendas en un único informe de Excel
Cómo se ejecuta
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO Carpeta: sales/2026-10, 9 archivos encontrados
2026-11-02 09:14:03 INFO shop-01.csv: 1.284 filas
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 filas
2026-11-02 09:14:04 WARN shop-07.csv: 3 filas sin precio omitidas (líneas 88, 412, 913)
2026-11-02 09:14:05 INFO Listo: 10.412 filas -> report-2026-10.xlsx (hojas “Ventas” y “Totales”)
Configuración, no código
Los nombres de columna de cada tienda están en settings.ini, así que una tienda nueva o una columna renombrada es una línea ahí:
[columns]
date = Fecha, Fecha de venta, Día
product = Producto, Artículo, Nombre
quantity = Cant., Cantidad, Uds.
price = Precio, Precio unitario
Una parte del código
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""Lee el archivo de una tienda y le da los nombres de columna del informe."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: no hay columna para '{name}' (se buscó {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
Archivos: un archivo ZIP con merge_sales.py (310 líneas), settings.ini, requirements.txt y un README sobre cómo instalar Python, ejecutar el script y qué significa cada mensaje del registro. El cliente lo ejecuta en su propio ordenador.
Cliente: una pequeña cadena de 9 papelerías; cada tienda envía sus ventas del mes en un archivo CSV o Excel, con nombres de columna ligeramente distintos. Tarea: un único script que lea todos los archivos de una carpeta, dé a las columnas un mismo formato y genere un solo informe de Excel con todas las ventas y una hoja de totales por tienda.
El cliente y todos los datos son ficticios.
Acerca de este servicio
Si sus precios, facturas o informes dependen de los tipos de cambio, escribirlos cada mañana es fácil de olvidar. Este Google Apps Script lee los tipos de una fuente pública que usted elija, como los que publica su banco central o un servicio de tipos con su propia clave, y escribe las monedas que necesita en su hoja de cálculo de Google con la fecha. Desde Estándar mantiene una pestaña de historial con una fila por día, para que sus fórmulas busquen el tipo de cualquier fecha; Premium añade una segunda fuente por si la primera no responde y rellena fechas pasadas. Hojas de cálculo de Google tiene su propia función GOOGLEFINANCE para algunas monedas; este script es para cuando necesita una fuente concreta o un historial guardado. Los tipos son los de la fuente; no damos asesoramiento financiero.
Qué incluye
- Qué recibeUn archivo ZIP con el código de Apps Script y un README que explica cómo añadirlo a su hoja, dar acceso y programarlo a diario; el código también se muestra en la página del pedido.
- Su fuenteLos tipos oficiales o del servicio que elija
- Sus monedasSolo las que necesita, frente a su moneda base
- Historial con fechasDesde Estándar, una fila por día para las búsquedas
- La clave, fuera del códigoSi la fuente necesita una, la pone usted
- Código legibleCon comentarios, fácil añadir una moneda más adelante
Cómo funciona
- 1FuenteUsted indica las monedas y la fuente en que confía
- 2CódigoEscribimos el script según la documentación de la fuente y la guía de instalación
- 3PruébeloLo ejecuta en una copia de la hoja y compara con la web de la fuente
- 4CambiosPide cambios dentro de su paquete y nos envía cualquier mensaje de error
Qué necesitamos de usted
Las monedas que necesita y su moneda base, la fuente que quiere usar (un enlace a la página o a la documentación donde publica los tipos, o deje que le sugiramos fuentes públicas para elegir), con qué frecuencia necesita los tipos y a qué hora, y dónde deben ir en su hoja. Si necesita fechas pasadas (Premium), desde qué fecha. Si la fuente pide una clave, créela en su cuenta; no nos la envíe nunca.
Le preguntaremos:
- ¿Qué monedas necesita?
- ¿Qué fuente debe usar?
- ¿Con qué frecuencia y para cuándo?
- ¿Necesita fechas pasadas?
Comparar paquetes
| Paquetes | BásicoTipos de hoy16 US$ | EstándarTipos con historial33 US$ | PremiumHerramienta de tipos67 US$ |
|---|---|---|---|
| Plazo | 1 día | 2 días | 3 días |
| Cambios | 1 | 2 | 3 |
| Código | hasta 150 líneas | hasta 400 líneas | hasta 1.000 líneas |
| Archivos de código | 1 | hasta 3 | hasta 8 |
| Archivo de configuración | No | Sí | Sí |
| Mensajes de error claros y registro | No | Sí | Sí |
| Opciones de ejecución y guía para ejecutarlo de forma programada | No | No | Sí |
| Guía de instalación y uso (README) | Sí | Sí | Sí |
| Lenguaje | Google Apps Script | Google Apps Script | Google Apps Script |
| Hacer pedido Básico | Hacer pedido Estándar | Hacer pedido Premium |
Protección de pago
Usted paga al hacer el pedido, pero el dinero solo se libera por un trabajo aceptado.
- Precio fijoEl precio del paquete no cambia después del pago.
- El dinero queda reservadoAl pagar, el importe solo queda reservado. Pasa a Dleex cuando usted acepta el trabajo.
- Revisado antes de la entregaCada resultado pasa un control de calidad antes de llegar a usted, y lo ve en la página del pedido antes de aceptarlo.
- Cambios gratuitosSolicite cambios dentro de su brief tantas veces como permita el paquete.
- Aceptación a los 3 díasSi en los 3 días siguientes a la entrega no acepta el trabajo ni solicita cambios, se acepta automáticamente. Si escribe en el chat del pedido después de la entrega, el pedido queda en espera; cuando le respondamos, podremos reiniciar el plazo de 3 días y se lo indicaremos en el chat.
- Rehacer el trabajo o reembolso totalSi el resultado no se ajusta a su brief y los cambios no lo resolvieron, o el trabajo tarda más del doble de su plazo, escriba en el chat del pedido: rehacemos el trabajo o le reembolsamos el pago íntegro.
Preguntas y respuestas
¿Son exactos los tipos?
Son exactamente los que publica la fuente que elija. Los tipos oficiales suelen fijarse una vez por día hábil, y el script no puede estar más al día que su fuente.
¿Puede actualizarse cada minuto para operar en bolsa?
Está pensado para tipos diarios u horarios para precios, facturas e informes, no para operar. No damos asesoramiento financiero.
¿Qué pasa los fines de semana y festivos?
Muchas fuentes oficiales no publican nada esos días. Desde Estándar usted elige si el historial repite el último tipo o deja el día vacío.
¿Tendrán acceso a mi hoja?
No. Usted añade el script a su propia hoja y le da acceso usted mismo. Nunca iniciamos sesión en su cuenta de Google.
¿No encontró su respuesta?


