python代码:
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('请选择方案(输入数字):')
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",
}