Hola tengo el siguiente caso: tengo un excel que debo sumarle a una fecha inicial 7 dias hasta la fecha final(rango semanal), necesito q esas fechas vaya escribiendolas a partir de la columna k1 y se detenga hasta que la fecha sea igual o menor a la fecha final.
como puedo recorrer en un excel las columnas , que escriba esas fechas y se detenga hasta la fecha final?
les agradezco si alguien puede ayudarme.
Franky
Mari, dentro de un for debes crear una lista con los valores que desees escribir ( [f1, f2, f3, f4, etc] ) y luego con el comando escribir celdas escribes sobre la celda inicial y listo. Escribirá en esa fila cada valor en una columna diferente.
mari900301
Hola la idea es empezar en una celda y me escriba la fecha inicial, luego a partir de ahi me sume 7 dias y escriba las siguientes fechas en las otras columnas y se detenga hasta q encuentre la fecha final. Mi duda es como puedo recorrer las columnas hasta que se detenga cuando encuentre la fecha final.
Franky
Lo que yo le comento es mas sencillo, hace todo en Rocketbot y luego escribe todo una vez.
Calcula todas las fechas, las asigna en una lista de valores y recien cuando tenga todo, los escribe en el Excel.
JoseL
Mira, según lo que entendi de lo que necesitas. Básicamente, primero debes obtener la fecha inicial en cuestión. Luego lo que puedes ir haciendo es irle sumando 1 en 1 a la fecha en cuestión y los resultados irlos asignando a una lista.
Luego cuando tengas la lista resultante la mandas a escribir en la columna k1 y de esa forma escribira celda por celda a partir de la k según la cantidad de elementos que se encuentren en la lista.
Entonces sería mas o menos así:
Variables necesarias:
– FechaInicio
– RangoFechas (es de tipo lista y se define así [] en rocketbot)
En código sería mas o menos así:
*Obtienes la fecha de inicio del excel con el módulo de advanced excel de rocketbot*
aqui lo ideal sería que hagas un script de python y hagas lo siguiente:
# Importamos la libreria para trabajar con fechas
import datatime
# Obtenemos la fecha a la que sumaremos un día
FechaInicio = GetVar(«FechaInicio»)
# Inicializamos la lista que contendrá los resultados
ListaResultados = []
# Convertimos la fecha que viene de tipo string a tipo fecha
FechaTemporal = datetime.datetime.strptime(temporal, ‘%Y-%m-%d’)
# Inicializamos la fecha temporal que iteraremos dentro del for con la fecha de inicio
FechaTemporal = FechaInicio
# Comenzamos a iterar el for 7 veces para ir sumando 1 a cada día
for i in range(1, 8):
# Sumamos un día a la fecha temporal que va cambiando en cada iteración
siguiente = FechaTemporal + datetime.timedelta(days=1)
# Añadimos el resultado a la lista
ListaResultados.append(siguiente)
# Modificamos la fecha temporal con la fecha obtenida en la suma
FechaTemporal = siguiente
# Guardamos los resultados en nuestra variable de rango fechas
SetVar(«RangoFechas», ListaResultados)
Luego de esto, simplemente es escribir el resultado con el módulo advanced excel
Sería escribir en la columna k1 y le pasas la variable *RangoFechas* y listo, pruebalo a ver si te funciona y si es lo que esperas. Espero haberte ayudado!
mari900301
Hola, tengo fecha inicio 01/07/23 y fecha final 31/07/23 , quiero que en un array se guarde la fecha sumandole 7 dias y termine de sumar hasta q sea igual a fecha final. Y eso imprimirlo en columnas de un excel.
JoseL
Entiendo, supongo que ambas fechas las extraerías del excel?
Entonces con el mismo código de python que te puse arriba sería modificarlo un poco. Básicamente, así:
# Importamos la libreria para trabajar con fechas
import datatime
# Obtenemos la fecha de inicio
FechaInicio = GetVar(«FechaInicio»)
# Obtenemos la fecha final
FechaFinal = GetVar(«FechaFinal»)
# Inicializamos la lista que contendrá los resultados
ListaResultados = []
# Convertimos las fechas que vienen de tipo string a tipo fecha
FechaTemporal = datetime.datetime.strptime(FechaInicio, ‘%Y-%m-%d’)
FechaFin = datetime.datetime.strptime(FechaFinal, ‘%Y-%m-%d’)
# Inicializamos la fecha temporal que iteraremos dentro del for con la fecha de inicio
FechaTemporal = FechaInicio.
# Iniciamos un while infinito
while(True):
# Sumamos un día a la fecha temporal que va cambiando en cada iteración
siguiente = temporal + datetime.timedelta(days=1)
# Añadimos el resultado a la lista
ListaResultados.append(siguiente)
# Cambiamos el valor de la fecha temporal para que vaya siguiendo la sucuencia
FechaTemporal = siguiente
# Verificamos si llegamos la fecha final y salimos del while
if (FechaFinal == FechaTemporal):
break
# Guardamos los resultados en nuestra variable de rango fechas
SetVar(«RangoFechas», ListaResultados)
Prueba ese código que te puse ahí y mira si el resultado que te da en la lista es el que esperas. Recuerda añadir tu variable fecha final así como la fecha de inicio. Con ello, de ahí solo sería escribir el resultado en el excel con el comando.
mari900301
Hola he intentado hacer una lista y compararla con un if y recorrerla con for, para el calculo de fecha utilizo el modulo fechas pero me muestra el siguiente error. Al parecer fecha viene de tipo string e igual trato de convertirla.