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 lleva los pedidos o las horas de trabajo en una hoja de cálculo de Google, hacer cada factura a mano supone copiar el cliente, los conceptos y los totales en un documento y guardar un PDF. Este Google Apps Script añade un botón a su hoja: rellena su propia plantilla de factura en Google Docs o en Hojas de cálculo con los datos de la fila, guarda un PDF con el nombre que quiera en una carpeta de Drive y vuelve a poner el enlace en la fila. Desde Estándar admite varias líneas de conceptos y numeración; Premium puede enviar cada PDF por correo desde su Gmail a su cliente. Los totales, los impuestos y los textos salen de su hoja y su plantilla: el script hace las cuentas que usted describe y no da asesoramiento fiscal ni contable, así que revise las primeras facturas. Usted lo instala y lo ejecuta en su cuenta de Google.
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 y a su plantilla; el código también se muestra en la página del pedido.
- Su propia plantillaSu diseño, logotipo y textos en Google Docs o Hojas de cálculo
- PDF a DriveCon número, cliente y fecha en el nombre, en la carpeta que fije
- Enlace en la filaVe qué filas ya tienen factura
- NumeraciónDesde Estándar, el siguiente número tomado de su hoja
- Código legibleCon comentarios, fácil cambiar un campo más adelante
Cómo funciona
- 1PlantillaUsted envía las columnas de la hoja y su plantilla de factura
- 2CódigoEscribimos el script y la guía para instalarlo
- 3PruébeloHace facturas de prueba en una copia de la hoja y revisa las cuentas
- 4CambiosPide cambios dentro de su paquete y nos envía cualquier mensaje de error
Qué necesitamos de usted
Los nombres de columna de su hoja con dos o tres filas de datos inventados, su plantilla de factura (un documento de Google Docs o una hoja de cálculo, o el PDF de una factura que envía ahora) con los lugares donde va cada valor, y cómo se calculan los totales: tipo de impuesto, descuentos, moneda y redondeo, según le indique su gestor. Cómo se numeran y nombran las facturas, la carpeta de Drive para los PDF y, para Premium, el texto del correo al cliente.
Le preguntaremos:
- ¿Qué factura?
- ¿Qué columnas tiene la hoja?
- ¿Cómo es su factura?
- ¿Cómo se calculan los totales?
Comparar paquetes
| Paquetes | BásicoUna factura cada vez16 US$ | EstándarFacturas con configuración33 US$ | PremiumHerramienta de facturación67 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
¿Serán las facturas legalmente correctas?
El script rellena lo que contienen su plantilla y su hoja y calcula como usted describe. Lo que debe contener una factura en su país lo deciden usted o su gestor; no damos asesoramiento fiscal ni jurídico.
¿Puede enviar las facturas por correo?
En Premium, sí: desde su propio Gmail a la dirección de la fila, dentro del límite diario de envíos que Google fija para su cuenta. Puede desactivar el envío y solo guardar los PDF.
¿Puede cobrar pagos o conectarse con mi programa de contabilidad?
No, crea PDF. Un enlace de pago que ya tenga puede imprimirse en la factura como texto desde su hoja.
¿Tendrán acceso a mi Drive?
No. Usted añade el código a su propia hoja y le da acceso usted mismo. Nunca iniciamos sesión en su cuenta de Google.
¿No encontró su respuesta?


