白又白X 2022-02-16 20:14 采纳率: 14.3%
浏览 155
已结题

办公自动化操作填写以及识别,可以自动写入,并且识别除500g。以外1000g的名称数据自动公式填写

表格B:系统规范表格
表格A:商家提供表格

需求:
1、将表格A中的品名与表格B的规范商品名称进行匹配
示例:将表格A中的乳黄瓜与表格B中的乳黄瓜进行匹配

img


2、将匹配对应的商品名称分别匹配不同的商品重量,并对不同重量的相同商品名称进行零售价自动填充。
示例:表格A中的乳黄瓜零售价13.98元/500g,对应表格B中的乳黄瓜500g、1000g的零售价进行自动填充。

img

  • 写回答

13条回答 默认 最新

  • ~白+黑 Python领域新星创作者 2022-02-17 09:57
    关注
    获得3.20元问题酬金

    img

    img

    ```

    import xlwings as xw
    '''写一个函数,该函数需要四个参数,有单价的表格路径,无单价的表格路径,有单价表格的数据范围无表头,无单价表格数据范围无表头'''

    def makeprice(pathA,pathB,Arange,Brange):
    with xw.App(visible=False) as app:
    wb_A= app.books.open(pathA)
    wb_B= app.books.open(pathB)
    sht_A = wb_A.sheets[0]
    sht_B = wb_B.sheets[0]
    print(sht_A.range(Arange).value)#打印结果:[['乳黄瓜', 13.98], ['黄瓜', 11.98], ['旱黄瓜', 15.16]]
    print(sht_B.range(Brange).value)#打印结果:[['黄瓜', None, 200.0], ['黄瓜', None, 450.0], ['旱黄瓜', None, 500.0], ['乳黄瓜', None, 1000.0], ['乳黄瓜', None, 500.0], ['旱黄瓜', None, 800.0]]
    #接下来通过循环确定品名相同的产品,然后计算单价,按照单价都是"元/500g"计算;
    listA=sht_A.range(Arange).value
    listB=sht_B.range(Brange).value
    for dataB in listB:
    for dataA in listA:
    if dataB[0].startswith(dataA[0]):#如果B表品名从开始就包含A表品名
    dataB[1] = (dataA[1]/500)*dataB[2]#按照500g算出每克价格,再乘以B表中的克数,算出单价
    print(listB)#此时价格匹配完成
    sht_B.range(Brange).value=listB#完成表格赋值
    wb_B.save()
    print("匹配完成")

    如果参数中路径填不好,可以把该文件放到两个表格的目录中运行,但是文件名要写对,建议测试的时候用副本测试。

    makeprice("A.xlsx","B.xlsx","A2:B4","A2:C7")

    ```看明白以后请去掉注释,避免复制格式错误

    评论

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 创建了问题 2月16日

悬赏问题

  • ¥15 如何构建全国统一的物流管理平台?
  • ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
  • ¥20 和学习数据的传参方式,选择正确的传参方式有关
  • ¥15 这是网络安全里面的poem code
  • ¥15 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
  • ¥50 python写segy数据出错
  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥30 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路