基于Python-xlwt 批量截取文件名子字符串保存到excel


前言

本人是个机械出身的程序员小白,平时机械画完图要出加工图纸发给加工厂去加工,最后要列一个项目清单,方便给车间的师傅核对,自己也方便最后零件的验收。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了,哈哈哈哈哈哈哈,爽啊!

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值