Python - Declaración condicional no funciona mientras extrae datos de una columna en una hoja de cálculo -- python campo con excel campo con colors campo con conditional-statements campo con openpyxl camp Relacionados El problema

Python - Conditional statement not working while extracting data from a column in a spreadsheet


0
vote

problema

Español

Tengo dos archivos de Excel:

  1. stock_ex2.xlsx con tres columnas [artículo, cantidad, precio)
    Este archivo está lleno de datos de hasta 50 filas. Fila 1 es el encabezado
  2. destiptudestock_ex2.xlsx
    Este es el archivo está vacío

El programa a continuación, copia los datos de stock_ex2 Archivo al archivo actualizable_excional. Luego busca la palabra "precio". Necesito saber la dirección / la columna / nombre de la celda. Funciona bien hasta aquí:

El problema es con la sentencia 'IF' I.E. Quiero colorear el código de las celdas donde el precio es inferior a 100. No sucede ni muestra nada en el archivo. Funciona sin 'si'. Pero necesito esto 'si'. ¿Puedes por favor ayudar? ¡Gracias!

  import openpyxl from openpyxl.styles import PatternFill  wb = openpyxl.load_workbook("C:\Users\Ricky\Desktop\Stock_ex2.xlsx") wb1 = openpyxl.load_workbook("C:\Users\Ricky\Desktop\UpdatedStock_ex2.xlsx")  print(wb.sheetnames) wb1['Sheet1'].title="Copied Info" print(wb1.sheetnames) sh1 = wb.active sh2 = wb1.active print(sh1) print(sh2) row1=sh1.max_row col1=sh1.max_column print(f'#of rows: {row1}') print(f'# of columns: {col1}')  for i in range (1,row1+1): #Copies info from one sheet of a file to another file     for j in range (1, col1+1):         sh2.cell(row=i,column=j).value = sh1.cell(row=i,column=j).value   for row in sh2.iter_rows():     for cell in row:         if cell.value == "Price":                 print(cell.row,cell.column) #Prints row #, col #                 print(cell.coordinate) #Prints the actual address of the cell i.e.C1                 print(cell.value) #Prints Price  for cell in sh2['C2':'C50']: #Using C column from the above info as Price can be in any column     if sh2.cell.value < 100:         sh2.cell.fill = PatternFill("solid",fgColor="71FF35") print("Color Complete")     wb1.save("C:\Users\Ricky\Desktop\UpdatedStock_ex2.xlsx") print("file Saved")   
Original en ingles

I have two Excel files:

  1. Stock_ex2.xlsx with three columns [Item, Quantity, Price)
    This file is filled with data up to 50 rows. Row 1 is the header
  2. UpdatedStock_ex2.xlsx
    This is file is empty

The program below, copies data from Stock_ex2 file to UpdatedStock_ex2 file. It then searches for the word "Price". I need to know the address / column / cell name. It works fine till here:

The problem is with the 'If' statement i.e. I want to color code the cells where the Price is less than 100. It does not happen nor does it show anything in the file. It works without 'If'. But i need this 'If'. Can you please assist? Thanks!

import openpyxl from openpyxl.styles import PatternFill  wb = openpyxl.load_workbook("C:\\Users\\Ricky\\Desktop\\Stock_ex2.xlsx") wb1 = openpyxl.load_workbook("C:\\Users\\Ricky\\Desktop\\UpdatedStock_ex2.xlsx")  print(wb.sheetnames) wb1['Sheet1'].title="Copied Info" print(wb1.sheetnames) sh1 = wb.active sh2 = wb1.active print(sh1) print(sh2) row1=sh1.max_row col1=sh1.max_column print(f'#of rows: {row1}') print(f'# of columns: {col1}')  for i in range (1,row1+1): #Copies info from one sheet of a file to another file     for j in range (1, col1+1):         sh2.cell(row=i,column=j).value = sh1.cell(row=i,column=j).value   for row in sh2.iter_rows():     for cell in row:         if cell.value == "Price":                 print(cell.row,cell.column) #Prints row #, col #                 print(cell.coordinate) #Prints the actual address of the cell i.e.C1                 print(cell.value) #Prints Price  for cell in sh2['C2':'C50']: #Using C column from the above info as Price can be in any column     if sh2.cell.value < 100:         sh2.cell.fill = PatternFill("solid",fgColor="71FF35") print("Color Complete")     wb1.save("C:\\Users\\Ricky\\Desktop\\UpdatedStock_ex2.xlsx") print("file Saved") 
              
         
         

Lista de respuestas


Relacionados problema

2  Apertura de archivos en una carpeta con OpenPyXl  ( Opening files in a folder with openpyxl ) 
Actualmente estoy tratando de abrir los archivos en una carpeta con la siguiente: from tkinter import filedialog import tkinter as tk import openpyxl impor...

0  Escribiendo datos a un archivo zip en Python  ( Writing data to a zip archive in python ) 
Me han dicho en el pasado que simplemente no hay una manera fácil de escribir una cadena un archivo zip. Está bien leer de un archivo Zip, pero si desea escri...

2  no puede importar el libro de trabajo en OpenPyXL  ( Cannot import workbook in openpyxl ) 
He instalado OpenPyXl en Ubuntu. Ahora estoy ejecutando el OpenPyXl con archivos XLSX. Mientras se importa el módulo, me da el siguiente error. from ope...

1  Cómo establecer el color de fondo del área de la trama de la tabla usando OpenPyXl  ( How to set background color of plot area of chart using openpyxl ) 
Me gustaría cambiar el color de fondo de un gráfico, como en este ejemplo , utilizando OpenPyXl. En una discusión de Google Group, encontré el siguiente fr...

-1  Mesa de lectura de OpenPyxl a Python  ( Openpyxl read table to python ) 
Estoy tratando de leer un objeto de mesa de Excel en Python y no puedo encontrar ninguna sintaxis para hacerlo. Sería útil leer una tabla completa en e.g. Un ...

2  Comparando los libros de trabajo de OpenPyxl  ( Comparing openpyxl workbooks ) 
Cuando comparto los objetos del libro de trabajo que deberían ser idénticos, obtengo False en lugar de True . Aquí hay un ejemplo: $ import openpyxl $ w...

2  OpenPyXl Reader devuelve Ninguno Valores  ( Openpyxl reader returns none values ) 
Estoy tratando de leer el documento XLSX usando export TEST_CONF_NAME="../test.conf" ; python setup.py nosetests2 Módulo. El problema es que se comporta com...

0  ¿Cómo puedo encontrar de manera más eficiente la altura de una mesa con Python?  ( How can i more efficiently find the height of a table using python ) 
Estoy usando OpenPyXL para copiar datos de una hoja de cálculo de Excel. Los datos son una tabla para una base de datos de inventario, donde cada fila es una ...

0  Formato de datos / tiempo con pyodbc y openpyxl  ( Formatting data time with pyodbc and openpyxl ) 
Tengo un script de Python que toma registros de un .mdb usando una consulta de SQL y los imprime a un documento de Excel. Dos de los campos que se imprimen so...

2  Cómo encontrar células que contienen imágenes con OpenPyXl  ( How to find cells that contain images with openpyxl ) 
Estoy en bucle a través de cada celda en un libro de trabajo. Por alguna razón, cuando OpenPyxl itera a través de una hoja de trabajo que contiene una imagen,...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos