example = ( 某某业务,序号,受理号码,受理业务,受理时间,执行日期,受理员工,, sheet1,3,13800138000,某某业务41717,三天内,某某,, sheet1,4,13800138000,某某业务41717,三天内,某某,, sheet1,序号,受理号码,受理业务,受理时间,执行日期,受理员工,,,,,,,,,, sheet1,1,13800138000,sheet1,41717,三天内,某某,,,,,,,,,, sheet1,2,13800138000,sheet1,41717,三天内,某某,,,,,,,,,, ) FileSelectFile, file, , , 请选择文件, (*.csv;*.txt) if !file ExitApp obj := {} #MaxMem 1024 ;默认年份 year = 2014 ;读取csv数据 SplitPath, file, , dir, , name FileDelete, %dir%%name%.exp.csv FileRead, c, % file StringReplace, c, c, `r, , All StringSplit, line, c, `n, ;循环写入数据到数组 Loop % line0 { tmp_line := line%A_Index% if tmp_line Contains 受理号码,受理业务,受理时间,序号 ;表头关键词 { StringSplit, var, tmp_line, `, fields := {} Loop % var0 { tmp_key := var%A_Index% if tmp_key { ;列1在我的csv里面是sheet名 可以注释掉 ;if A_Index = 1 ; fields.insert("sheet") ;Else ;注释完毕 fields.insert(tmp_key) } } } Else { item := {} StringSplit, var, tmp_line, `, for k,v in fields item[v] := var%k% obj.Insert(item) } } ;遍历数组并生成csv c = sheet`,受理号码`,受理业务`,受理时间`,执行时间`,受理员工`,结算单位`,部门`n ;指定关键词 for k,v in obj { if v["受理号码"] { if v["受理时间"] is Number ;转换Excel时间 { slsj = 18891230 slsj += v["受理时间"], Days FormatTime, slsj, %slsj%, yyyy-MM-dd } Else if regexmatch(v["受理时间"],"(d*)月(d*)号",m) slsj = %year%-%m1%-%m2% c .= v["sheet"] "," v["受理号码"] "," v["受理业务"] "," slsj "," v["执行时间"] "," v["受理员工"] ",地州,本地增值`n" } } FileAppend, %c%, %dir%%name%.exp.csv MsgBox, OK