Python操作Excel把多个单表,提取数据成列表

python代码:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import os
import sys
import ast
import datetime
import xlwings as xw

配置方案集=[]
全部文件=os.listdir()
for i in 全部文件:
    if os.path.splitext(i)[1] == '.cfg':
        配置方案集.append(i)
while True:
    for j in range(len(配置方案集)):
        print(j+1, 配置方案集[j])
    方案序号=input('请选择方案(输入数字):')
    # print(type(方案序号))
    if 方案序号.isdigit():
        break

数据源目录=os.path.splitext(配置方案集[int(方案序号)-1])[0]
if not os.path.exists(os.getcwd()+os.sep+数据源目录):
    print('找不到目录:',os.getcwd()+os.sep+数据源目录,'\n程序即将关闭。')
    os.system('pause')
    sys.exit()

f=open(配置方案集[int(方案序号)-1],'r',encoding='utf-8')
try:
    参数字典=ast.literal_eval(f.read())
except:
    print("错误类型:", sys.exc_info()[0])
    print(配置方案集[int(方案序号)-1]+'的格式有错误!')
    os.system('pause')
    sys.exit()
finally:
    f.close()

表头=list(参数字典.keys())
单元格=list(参数字典.values())

全部数据文件=os.listdir(数据源目录)
可用数据文件=[]
for i in 全部数据文件:
    if os.path.splitext(i)[1] == '.xlsx' or os.path.splitext(i)[1] == '.xls':
        if 0 <= i.find('~'):
            continue
        可用数据文件.append(os.getcwd()+os.sep+数据源目录+os.sep+i)
if len(可用数据文件)==0:
    print('目录内无Execl文件:', os.getcwd() + os.sep + 数据源目录, '\n程序即将关闭。')
    os.system('pause')
    sys.exit()


app = xw.App(visible=False, add_book=False)
outWB = app.books.add()
outWB.sheets[0].clear()
outWB.sheets[0].range('A:XFD').api.NumberFormat = "@"
outWB.sheets[0].range('A1').value=表头

k=2
for i in 可用数据文件:
    wb = app.books.open(i)
    ws = wb.sheets[0]
    t = []
    for j in 单元格:
        if type(datetime.datetime.now())==type(ws.range(j).value):
            t.append(ws.range(j).value.strftime('%Y-%m-%d'))
        else:
            t.append(ws.range(j).value)
    outWB.sheets[0].range((k, 1)).value = t
    k = k + 1
    wb.close()

时间戳=datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
outWB.save(os.getcwd()+os.sep+数据源目录+os.sep+'~结果'+ 时间戳 +'.xlsx')
outWB.close()
app.quit()

print('完成。\n','~结果'+ 时间戳 +'.xlsx','\n程序即将关闭。')
os.system('pause')

CFG文件使用字典格式

{
"单位全称":"H2",
"姓名":"E4",
"性别":"K4",
"民族":"Q4",
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值