Well thank you so much for this...I really appreciate..let me try it and I
will let you know

On Wed, 27 Jan 2021 03:12 Gabriel Araya Garcia, <[email protected]>
wrote:

> In top of views files (views.py) you must put:
> import openpyxl
> from openpyxl import Workbook
> from openpyxl.styles import Alignment,Border,Font,PatternFill,Side
> from openpyxl.styles import colors
> from openpyxl.styles import Font, Color,Fill
> from openpyxl.styles.borders import BORDER_THIN
> from openpyxl.drawing.image import Image as XLIMG
>
> ...and the view which prepare the excel out, you should review this
> example:
>
> # CARTOLA DE RECAUDACION en excel
> @login_required(login_url='login_ini')
> def acsv(request):
> nom_arch = nombrearch() # Se forma string para nombre de archivo excel
> string_nombre = 'pac'+nom_arch
> query = Pauta_aux.objects.all().order_by('rut') # viene filtrada x rango
> de fecha
>
> reg_x = 0
> if query:
> for fech_x in query:
> reg_x = reg_x + 1
> else:
> # estas dos instrucciones van juntas siempre
> messages.error(request, "No existen movimientos que mostrar !!")
> return redirect("info")
>
> mes_x = fechapautas.strftime('%m')
> ano_x = fechapautas.strftime('%Y')
> fecha_ini = str(ano_x)+"-"+str(mes_x).zfill(2)+"-01 00:00:00"
> #total dias del mes
> totdias = calendar.monthrange(int(ano_x),int(mes_x))[1]
> fecha_fin = str(ano_x)+"-"+str(mes_x).zfill(2)+"-"+str(totdias)+" 00:00:00"
> wb = Workbook()
> ws = wb.create_sheet("hoja1",0)
> ws.column_dimensions['A'].width = 5
> ws.column_dimensions['B'].width = 12 # rut paciente
> ws.column_dimensions['C'].width = 36 # nombre paciente
> ws.column_dimensions['D'].width = 17 # fecha
> ws.column_dimensions['E'].width = 11 # rut cuid.
> ws.column_dimensions['F'].width = 23 # nombre cuidador
> ws.column_dimensions['G'].width = 12 # tipo cuidador
> ws.column_dimensions['H'].width = 11 # rut cuid.
> ws.column_dimensions['I'].width = 23 # nombre cuidador
> ws.column_dimensions['J'].width = 12 # tipo cuidador
> ws.column_dimensions['K'].width = 11 # rut cuid.
> ws.column_dimensions['L'].width = 23 # nombre cuidador
> ws.column_dimensions['M'].width = 12 # tipo cuidador
>
> ws.column_dimensions['Q'].width = 12 # rut cuid.
> ws.column_dimensions['R'].width = 14# nombre cuidador
> ws.column_dimensions['S'].width = 12 # tipo cuidador
> ws.column_dimensions['T'].width = 14 # tipo cuidador
>
> r=4 # posicion de la primera fila
> ws.cell(row=r-3,column=2).value = "CARTOLA DE RECAUDACION"
> ws.cell(row=r-3,column=7).value = "1=Contratado"
> ws.cell(row=r-2,column=7).value = "2=Extra"
>
> ws.cell(row=r-3,column=20).value = "1=Normal"
> ws.cell(row=r-2,column=20).value = "2=Domingo"
> ws.cell(row=r-1,column=20).value = "3=Festivo"
>
> ws.cell(row=r,column=2).value = "Rut paciente"
> ws.cell(row=r,column=3).value = "Paciente"
> ws.cell(row=r,column=4).value = "Fecha pauta"
>
> ws.cell(row=r,column=5).value = "Rut turno 1"
> ws.cell(row=r,column=6).value = "Cuidador t1"
> ws.cell(row=r,column=7).value = "Tipo Cuid t1"
>
> ws.cell(row=r,column=8).value = "Rut turno 2"
> ws.cell(row=r,column=9).value = "Cuidador t2"
> ws.cell(row=r,column=10).value = "Tipo Cuid t2"
>
> ws.cell(row=r,column=11).value = "Rut turno 3"
> ws.cell(row=r,column=12).value = "Cuidador t3"
> ws.cell(row=r,column=13).value = "Tipo Cuid t3"
>
> ws.cell(row=r,column=14).value = "$ turno 1"
> ws.cell(row=r,column=15).value = "$ turno 2"
> ws.cell(row=r,column=16).value = "$ turno 3"
>
> ws.cell(row=r,column=17).value = "$ paciente t1"
> ws.cell(row=r,column=18).value = "$ paciente t2"
> ws.cell(row=r,column=19).value = "$ paciente t3"
>
> ws.cell(row=r,column=20).value = "recargo"
> ws.cell(row=r,column=21).value = "Tot.turnos"
> cell_range = ws['B1':'T4']
> #cell_range.bold = True
>
> tot1=0 # valores de cuidador
> tot2=0
> tot3=0
> tot_pac1 = 0 # valores de paciente (o lo que pagael apoderado)
> tot_pac2 = 0 # valores de paciente (o lo que pagael apoderado)
> tot_pac3 = 0 # valores de paciente (o lo que pagael apoderado)
> va1=0
> va2=0
> va3=0
>
> tRecauda = 0
> subtot = 0
> rut_x = ''
> r=r+1
> for q in query: # pauta_aux - dia a dia
> if q.rut != rut_x:
> ws.cell(row=r,column=20).value = "Subtotal:"
> ws.cell(row=r,column=21).value = subtot
>
> r=r+1
> ws.cell(row=r,column=20).value = "Tot.Anticipo:"
> totAnticipo = anticipos(rut_x,fecha_ini,fecha_fin)
>
> ws.cell(row=r,column=21).value = totAnticipo
>
> r=r+1
> ws.cell(row=r,column=20).value = "Recauda:"
> ws.cell(row=r,column=21).value = subtot - totAnticipo
>
> tRecauda = 0
> subtot = 0
>
> va1=0
> va2=0
> va3=0
>
> rut_x = q.rut # paciente
> r=r+2
>
> ws.cell(row=r,column=2).value = q.rut
> ws.cell(row=r,column=3).value = q.paciente
> ws.cell(row=r,column=4).value = q.fecha   # fecha de la pauta
>
> ws.cell(row=r,column=5).value = q.rut_t1   # rut cuidador
> ws.cell(row=r,column=6).value = q.turno1 # nombre cuidador
> ws.cell(row=r,column=7).value = q.tipo_turno1 # Contratado - Extra
>
> ws.cell(row=r,column=8).value = q.rut_t2   # rut cuidador
> ws.cell(row=r,column=9).value = q.turno2 # nombre cuidador
> ws.cell(row=r,column=10).value = q.tipo_turno2 # Contratado - Extra
>
> ws.cell(row=r,column=11).value = q.rut_t3   # rut cuidador
> ws.cell(row=r,column=12).value = q.turno3   # nombre cuidador
> ws.cell(row=r,column=13).value = q.tipo_turno3 # Contratado - Extra
>
> ws.cell(row=r,column=14).value = q.valor_t1 # valor cuidador1
> ws.cell(row=r,column=15).value = q.valor_t2 # valor cuidador2
> ws.cell(row=r,column=16).value = q.valor_t3 # valor cuidador3
>
> ws.cell(row=r,column=17).value = q.valor_p1 # valor paciente
> ws.cell(row=r,column=18).value = q.valor_p2 # valor paciente
> ws.cell(row=r,column=19).value = q.valor_p3 # valor paciente
> #con recargo
> if q.reca_cui != '1':
> if q.valor_p1 != None:
> ws.cell(row=r,column=17).value = q.valor_p1 * 1.5
> if q.valor_p2 != None:
> ws.cell(row=r,column=18).value = q.valor_p2 * 1.5
> if q.valor_p3 != None:
> ws.cell(row=r,column=19).value = q.valor_p3 * 1.5
>
> if q.valor_p1 != None:
> va1 = q.valor_p1
> if q.valor_p2 != None:
> va2 = q.valor_p2
> if q.valor_p3 != None:
> va3 = q.valor_p3
> #con recargo
> if q.reca_cui != '1':
> if q.valor_p1 != None:
> va1 = q.valor_p1 * 1.5
> if q.valor_p2 != None:
> va2 = q.valor_p2  * 1.5
> if q.valor_p3 != None:
> va3 = q.valor_p3 * 1.5
>
> ws.cell(row=r,column=21).value = va1 + va2 + va3
> subtot = subtot + va1 + va2 + va3
> if q.valor_t1 != None:
> tot1 = tot1 + q.valor_t1
> if q.valor_p1 != None:
> tot_pac1 = tot_pac1 + q.valor_p1
>
> if q.valor_t2 != None:
> tot2 = tot2 + q.valor_t2
> if q.valor_p2 != None:
> tot_pac2 = tot_pac2 + q.valor_p2
>
> if q.valor_t3 != None:
> tot3 = tot3 + q.valor_t3
> if q.valor_p3 != None:
> tot_pac3 = tot_pac3 + q.valor_p3
>
> ws.cell(row=r,column=20).value = q.reca_cui # recargo cuidador
>
> r=r+1  # contador defilas
>
> ws.cell(row=r,column=20).value = "Subtotal:"
> ws.cell(row=r,column=21).value = subtot
> r=r+1
> ws.cell(row=r,column=20).value = "Tot.Anticipo:"
>
>
> totAnticipo = anticipos(rut_x,fecha_ini,fecha_fin)
>
> ws.cell(row=r,column=21).value = totAnticipo
>
> r=r+1
> ws.cell(row=r,column=20).value = "Recauda:"
> ws.cell(row=r,column=21).value = subtot - totAnticipo
> tRecauda = 0
> #rut_x = q.rut
> r=r+1
>
> ws.delete_rows(5, 4) # elimina la fila 5, y mas 3 hacia abajo
>
> response = HttpResponse(content_type='application/vnd.ms-excel')
> response['Content-Disposition'] = 'attachment;
> filename='+string_nombre+'.xlsx'
> wb.save(response)
> return response
>
> This is running in production well now, but if there is another way to do
> this, please write me to: gabrielaraya2011<arroba>gmail.com
> El lunes, 25 de enero de 2021 a las 6:26:18 UTC-3, [email protected]
> escribió:
>
>> Hello Everyone,
>> I have a python file which I run on the terminal and give me the result
>> that I want. I want to to do the same via a web app whereby instead of
>> interacting with the terminal, I can do that via a browser through a form.
>> I have decided to choose django as the server. Below is the file that I
>> need to integrate to django. It works well in the terminal. I also have the
>> excel file.
>> Now my concern was how can I integrate it with django such that fields
>> like link_name can be filed through a form and when I click a button
>> should give the required results. Thank you fo your time.
>>
>> def find_fault(request):
>> wb = xl.load_workbook("Find Fault App Documentation.xlsx")
>> link_name = input("Link Name: ")
>> test_location = input("Test Location: ")
>> distance = float(input("Distance of Fault(km): "))
>> error = int(input("Error margin(m): "))
>> nature = input("Nature of Fault: ").lower()
>> for sheet in wb.worksheets:
>> if sheet.title == link_name:
>> for i in range(2, sheet.max_row + 1):
>> cell0 = sheet.cell(i, 1)
>> if cell0.value == test_location:
>> distance1 = distance * 1000 + sheet.cell(i, 2).value
>> for value in range(2, sheet.max_row + 1):
>> cell = sheet.cell(value, 2)
>> cell1 = sheet.cell(value, 1)
>> cell2 = sheet.cell(value, 3)
>> if cell.value in range(int(distance1) - error, int(distance1) + error):
>> if nature == "kink":
>> print()
>> print("Kink at {cell1.value}")
>> print("Pairs at this point:")
>> print(cell2.value)
>> elif nature == "break":
>> print()
>> print("Break at {cell1.value}")
>> print("Pairs at this point:")
>> print(cell2.value)
>> else:
>> print()
>> print("Fault at {cell1.value}")
>> print("Pairs at this point:")
>> print(cell2.value)
>>
>> for value in range(2, sheet.max_row):
>> cell1 = sheet.cell(value, 2)
>> cell2 = sheet.cell(value + 1, 2)
>> cell3 = sheet.cell(value, 4)
>> cell4 = sheet.cell(value, 1)
>>
>> if distance1 in range(cell1.value, cell2.value):
>> if distance1 in range(cell1.value + error, cell2.value - error):
>> if nature == "kink":
>> print()
>> print("Kink at {(distance1 - cell1.value) / 1000} "
>> "km from {cell4.value}")
>> print(
>> "Pair at this point >> {cell3.value}")
>> elif nature == "break":
>> print()
>> print("Break at {(distance1 - cell1.value) / 1000} "
>> "km from {cell4.value}")
>> print(
>> "Pair at this point >> {cell3.value}")
>> else:
>> print()
>> print("Fault at {(distance1 - cell1.value) / 1000} "
>> "km from {cell4.value}")
>> print(
>> "Pair at this point >> {cell3.value}")
>>
>> if distance * 1000 > (sheet.cell(sheet.max_row, 2).value - (sheet.cell(i,
>> 2).value + error)):
>> print()
>> print(
>> "The Distance from {test_location} to {sheet.cell(sheet.max_row,
>> 1).value} ")
>> print("is about "
>> "{(sheet.cell(sheet.max_row, 2).value - sheet.cell(i, 2).value) / 1000}
>> km")
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/93c1a65c-eaa1-4580-9937-7d85f7e49a63n%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/93c1a65c-eaa1-4580-9937-7d85f7e49a63n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAPsfuofG1U5pShuB157YAaGksDTgQQpSW_WqzC%2BTBnN3eRMPRQ%40mail.gmail.com.

Reply via email to