python筛选表格数据存储至另一表格

描述:筛选excel表格数据存储至另一表格,用openpyxl读取excel,定义数组临时存储数据,而后再保存表格。
需要提取数据表格样板:
在这里插入图片描述
提取存储至目标表格样板:
在这里插入图片描述
代码:

import openpyxl
import os
file_path = r''#表格所在位置
save_path = file_path +'\\' + '提取数据'
if not os.path.exists(save_path):
    os.mkdir(save_path)
files = []
for dirpath, dirnames, filenames in os.walk(file_path):
    for file in filenames:
        if file.endswith('.xlsx') or file.endswith('.xls'):
            files.append(dirpath + '\\' + file)
    break
for file in files:
    all_data_arr = []
    s1 = file.split('\\')
    s2 = s1[s1.__len__()-1]
    s3 = s2[:s2.index(".xls")]
    wb2 = openpyxl.Workbook()
    ws2 = wb2.active
    wb1 = openpyxl.load_workbook(file)
    table = wb1["0"]
    row_max = table.max_row#表格最大数量
    for i in range(1, row_max+1):  # 提取每一行的数据
        data_arr = []
        str1 = table.cell(i,1).value
        if str1 !=None:
            str2 = str1.split('-')
        else:
            str2 = ['1']
        if str2[0] == 'MS':
            data_arr.append(str2[1])
            data_arr.append(str2[1]+str2[2])
            cm_arr = []
            for j in range(19,42):
                cm_arr1 = []
                if table.cell(i,j-16).value !=None:
                    cm_arr1.append(j)
                    cm_arr1.append(int(table.cell(i,j-16).value))
                    cm_arr.append(cm_arr1)
            data_arr.append(cm_arr)
            all_data_arr.append(data_arr)
    target = 1
    for data in all_data_arr:
        for arr in data[2]:
            ws2.cell(target,1).value = data[0]
            ws2.cell(target, 2).value = data[1]
            ws2.cell(target, 3).value = ""
            ws2.cell(target, 4).value = arr[0]
            ws2.cell(target, 5).value = arr[1]
            target +=1
    f1 = s3 + '.xlsx'
    wb2.save(save_path + '\\'+f1)
    wb2.close()

注意:原来想要用xlrd读取表格数据,但是python高版本已经不支持xlrd了。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ChenWenKen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值