工作中 python 如何获取 excel 表格中数据所在的行和列,并对应写到相应表格中

import re
import pandas
import pandas as pd
import numpy as np


def get_coordinates(data: pandas.DataFrame, target: str, order_id):
    """
    根据要查找的目标,返回其在excel中的位置
    data: excel数据,
    target: 要查找的目标
    return: 返回坐标列表
    """
    data_list = np.array(data).tolist()
    for i in range(len(data_list)):
        for j in range(len(data_list[i])):
            if data_list[i][j] == target:
                ints=([i + 1, j + 1])
                print(ints)
                get_x_y(ints,order_id)
                return [i + 1, j + 1]
    return []


def get_x_y(ints,order_id):
    print(ints[0],ints[1] + 2)
    from openpyxl import load_workbook
    wb = load_workbook('.\weid2.xlsx')
    # 激活excel表
    sheet = wb.active

    # 向excel中写入表头
    sheet['j1'] = '订单号'
    # sheet['b1'] = '性别'
    # sheet['c1'] = '年龄'

    # 向excel中写入对应的value
    sheet.cell(row=ints[0]+1, column=ints[1] + 3).value = str(order_id)
    # sheet.cell(row=2, column=2).value = '男'
    # sheet.cell(row=2, column=3).value = 20

    wb.save('.\weid2.xlsx')
    print('数据写入成功!')


if __name__ == '__main__':

    # 读取excel文件
    df = pd.read_excel('.\weid2.xlsx')
    # df = pd.read_excel(path, header=0)
    # for url in df['链接']:
    #     print("ur", url)
    url = 'https://weidian.com/item.html?itemID=6095611655&spider_token=4572'
    item_Id = re.findall(r'itemID=(.*?)&spider', url)[0]
    itemID = '6095611655'
    order_id = '821018030917163'  # 订单号
    if itemID == item_Id:
        print("item_Id", item_Id)
        # 以查找张思德为例,获取其所在行和列
        target_string = url
        # 得到坐标
        coordinates = get_coordinates(df, target_string, order_id)
        # 打印坐标
        print(f"{target_string}在第{coordinates[0]}行,第{coordinates[1]}列")  # 张思德在第2行,第3列

posted @ 2023-04-01 00:29  莫贞俊晗  阅读(311)  评论(0编辑  收藏  举报