前言
本人是个机械出身的程序员小白,平时机械画完图要出加工图纸发给加工厂去加工,最后要列一个项目清单,方便给车间的师傅核对,自己也方便最后零件的验收。Solidworks自带的bom没法把外购件和加工件分开,只能自己再整理。之前总是一个一个的往excel里敲简直就是不胜其烦,后来实在是不想再这么干了,想到最近写程序学的头秃,能不能派上用场呢?
一、库简介
os:提供通用的、基本的操作系统交互功能os库是Python标准库,包含几百个函数分为路径操作、进程管理、环境参数等几类。
xlwt:相应的有xlrd扩展包,专门用于excel读取。可以实现指定表单、指定单元格的写入。
二、代码
1.引入库
代码如下:
import os
import xlwt as xl
2.新建excel表格
代码如下:
book = xl.Workbook() # 新建excel
sheet1 = book.add_sheet('加工清单', cell_overwrite_ok=True) # 给表格1命名
3.填写表头
代码如下:
sheet1.write(0, 0, '零件序号') # 单元格写入操作 (行,列,内容)
sheet1.write(0, 1, '零件名称')
sheet1.write(0, 2, '数量')
sheet1.write(0, 3, '材料')
效果如下:
4.for循环遍历文件夹下文件名字 while循环截取所需字符串并输出到excel
代码如下:
def name2exl_demo(): # 命名方式:"零件名称-数量-材料"
n = 0
filePath = r'C:\Users\PengJun_Wei\Desktop\新建文件夹\NewScara机加工件\dxf' # 文件目录路径
for i, j, k in os.walk(filePath): # 返回值为:(dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】
while n < len(k):
sheet1.write(n + 1, 0, n + 1) # 单元格写入操作 (行,列,内容)
name = str(k[n][:k[n].index('-')])
sheet1.write(n + 1, 1, name)
number = str(k[n][k[n].index('数量'):k[n].index('-材')][2:])
sheet1.write(n + 1, 2, number)
material = str(k[n][k[n].index('材料'):k[n].index('.')][2:])
sheet1.write(n + 1, 3, material)
n += 1
print('零件数量:%s' % n)
# 保存excel
book.save(r'C:\Users\PengJun_Wei\Desktop\新建文件夹\NewScara机加工件\机械臂加工清单.xls')
5.全部代码
import os
import xlwt as xl
book = xl.Workbook() # 新建excel
sheet1 = book.add_sheet('加工清单', cell_overwrite_ok=True) # 给表格1命名
# 填写表头
sheet1.write(0, 0, '零件序号') # 单元格写入操作 (行,列,内容)
sheet1.write(0, 1, '零件名称')
sheet1.write(0, 2, '数量')
sheet1.write(0, 3, '材料')
def name2exl_demo(): # 命名方式:"零件名称-数量-材料"
n = 0
filePath = r'C:\Users\PengJun_Wei\Desktop\新建文件夹\NewScara机加工件\dxf' # 文件目录路径
for i, j, k in os.walk(filePath): # 返回值为:(dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】
while n < len(k):
sheet1.write(n + 1, 0, n + 1) # 单元格写入操作 (行,列,内容)
name = str(k[n][:k[n].index('-')])
sheet1.write(n + 1, 1, name)
number = str(k[n][k[n].index('数量'):k[n].index('-材')][2:])
sheet1.write(n + 1, 2, number)
material = str(k[n][k[n].index('材料'):k[n].index('.')][2:])
sheet1.write(n + 1, 3, material)
n += 1
print('零件数量:%s' % n)
# 保存excel
book.save(r'C:\Users\PengJun_Wei\Desktop\新建文件夹\NewScara机加工件\机械臂加工清单.xls')
name2exl_demo()
效果如下:
6.注意事项
1.xlwt保存的格式只支持xls格式,07以后的版本xlsx不支持。
2.自己保存文件时的名字应该有个统一规范才方便程序里面的字符串截取
总结
以后不用自己一个一个敲或者一个一个CtrlCV了,哈哈哈哈哈哈哈,爽啊!