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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

湮雨塵飛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值