美文网首页python
Python之Excel使用实现BOM表自动生成工具

Python之Excel使用实现BOM表自动生成工具

作者: 沉睡在梦想里的小猪 | 来源:发表于2019-05-14 16:09 被阅读3次

    Python之Excel使用实现BOM表自动生成工具

    工具背景

    由于工作过程的繁杂性,工作内容的复杂性。急需一个工具来自动的完成重复的工作。作为硬件工程师,应该都知道,每个作品完成后,在加工之前必须导出BOM表,然后整理出来可以上传到ERP或者符合公司的公用模板。因此导致了需要多次的复制黏贴过程。

    公司模板或者ERP内置模板一般都是固定的,所以我针对本人所在公司设计了这样一个基于Python语言的BOM表自动生成工具。

    所需模块

    import xlrd
    import xlwt
    

    获取模板文件数据

    # 读取模板加载模板数据到新建的文档之中
    data = xlrd.open_workbook(r'模板.xls') 
    table = data.sheets()[0]
    print(table)
    
    nRows = table.nrows
    nCols = table.ncols
    
    # 读取Excel表格前七行数据并存储在列表rowsTable rowsTable = []
    for num in  range(8):
     rowsTable.append(table.row_values(num))
    

    获取BOM数据

    # 打开数据文件,将数据加载入上一步新建的文档 
    print("请输入要处理的BOM文档路径:")
    bomURL =  input('>')
    data1 = xlrd.open_workbook(bomURL)
    table1 = data1.sheets()[0]
    
    nRows1 = table1.nrows
    nCols1 = table1.ncols
    
    colsTable = []
    for num1 in  range(nCols1):
     colsTable.append(table1.col_values(num1))
    

    将模板文件数据填入新的文件中

    # 创建一个Excel 
    workBook = xlwt.Workbook(encoding='utf-8', style_compression=0)
    sheet = workBook.add_sheet('test', cell_overwrite_ok=True)
    # sheet.write(0, 0, cell_A1)
    
    # 将模板中的前八行数据填入新建文档 
    for num1 in  range(8):
     ColsNum =  0
      while ColsNum < nCols:
      for cell_value1 in rowsTable[num1]:
     sheet.write(num1, ColsNum, cell_value1)
      if  len(rowsTable[num1][ColsNum]) !=  0:
     ColsNum +=  1
    # print("%d" % ColsNum)
      else:
     ColsNum =  27
      break
    

    将BOM文件中的数据填入新的文件中

    # 将第1列的数据填入新建文档 
    for num2 in  range(nRows1):
     sheet.write(num2+8, 2, colsTable[0][num2])
    
    # 将第2列的数据填入新建文档 
    for num2 in  range(nRows1):
     sheet.write(num2+8, 21, colsTable[1][num2])
    
    # 将第3列的数据填入新建文档 
    for num2 in  range(nRows1):
     sheet.write(num2+8, 0, colsTable[2][num2])
    
    # 将第4列的数据填入新建文档 
    for num2 in  range(nRows1):
     sheet.write(num2+8, 1, colsTable[3][num2])
    
    # 将第5列的数据填入新建文档 
    for num2 in  range(nRows1):
     sheet.write(num2+8, 4, colsTable[4][num2])
    
    # 将第6列的数据填入新建文档 
    for num2 in  range(nRows1):
     sheet.write(num2+8, 6, colsTable[5][num2])
    

    运行结果

    1.jpg 2.jpg
    源码及 更多请关注公众号
    新媒体管家制作.png

    相关文章

      网友评论

        本文标题:Python之Excel使用实现BOM表自动生成工具

        本文链接:https://www.haomeiwen.com/subject/luxeaqtx.html