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" ,
}