Automatización de la oficina de Python: 27 líneas de código realizan la agregación por lotes y la fusión del contenido de varias tablas de Excel en una sola tabla

Procesamiento por lotes de Python de tablas de Excel

Preámbulo

El jefe se ha vuelto cada vez más extremo últimamente. Estaba a punto de salir del trabajo y me envió cientos de formularios para que combinara el contenido en un solo formulario.

Afortunadamente, conozco Python y puedo hacerlo en minutos. Si lo cambio a alguien que no sabe Python, no podré trabajar horas extras hasta el amanecer del día siguiente~


Una habilidad tan útil debe ser compartida con todos. Sin más preámbulos, ¡comencemos!

Listo para trabajar

Necesitamos preparar los datos de la tabla primero. Los hermanos que pueden gatear pueden gatear un poco solos. Si no, puedes encontrarme para obtener los datos directamente.

Colóquelo en el lado izquierdo de la computadora y colóquelo en la parte inferior del teléfono móvil

Aquí solo muestro los datos en la tabla
inserte la descripción de la imagen aquí, por lo que solo se usan cinco tablas. Hoy, fusionamos el nivel municipal con el nivel provincial.

inserte la descripción de la imagen aquí

La idea de este artículo.

  1. Resumir todo Excel en la carpeta actual a la provincia de Guangdong.xlsx
  2. Agregue un nuevo campo ciudad, el contenido del campo es la ciudad donde se encuentra la tienda, y este campo se coloca al frente;
  3. No se requieren todos los datos con una calificación de estrellas de star_0
  4. Siempre que tres campos de un dato sean campos vacíos, no se necesita el dato completo;
  5. Eliminar el símbolo $ del precio

Código

Todo el código se comparte con todos, no nos gusta ocultarlo.

import glob
import openpyxl 

workbook = openpyxl.Workbook()
sheet_total = workbook.active
sheet_total.append(['城市', '门店名称', '星级', '星级得分', '点评总数', '人均消费', '口味', '环境', '服务', '链接网址', '分类', '商圈', '详细地址', '推荐菜'])


def count_none(line):
    """返回空内容的数据"""
    count = 0
    for d in line:
        if not d:
            count += 1
    return count


filenames = glob.glob('*/*.xlsx')
for filename in filenames:
    # print(filename)
    city = filename.split('.')[0].split('\\')[-1]
    workbook_temp = openpyxl.load_workbook(filename)
    sheet = workbook_temp.active
    for row in sheet.iter_rows(min_row=2, min_col=1, max_col=sheet.max_column, max_row=sheet.max_row):
        row_data = [col.value for col in row]
        if row_data[1] == 'star_0':
            continue

        # 定义一个方法判断空字段的数量
        if count_none(row_data) >= 3:
            continue

        # 去掉平均价格中的 ¥
        if row_data[4]:
            row_data[4] = row_data[4].strip('¥')
        row_data.insert(0, city)
        # print(row_data)
        sheet_total.append(row_data)
    # break  # 调试只处理一个

workbook.save('广东省.xlsx')

Efecto

Recién salido del horno, muy fresco.
inserte la descripción de la imagen aquíHe filtrado, de lo contrario, todo se mostrará en un solo lugar.
Como puede ver, los datos se han fusionado con éxito en una tabla.
inserte la descripción de la imagen aquí
Si te gusta, recuerda darle me gusta y recolectarlo ~
Sígueme para compartir más productos secos técnicos
. Tomar el código directamente es equivalente a prostituirse por nada. Me gusta y recolectar es la verdad ...
Su apoyo es la fuerza motriz de mi ¡actualizar!

Supongo que te gusta

Origin blog.csdn.net/fei347795790/article/details/124149165
Recomendado
Clasificación