标题乱序CSV数据整理

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

给TA捐赠
共{{data.count}}人
人已捐赠
其他

枚举窗口 小猛

2020-3-9 3:36:44

其他

根据程序设置输入法

2020-3-9 3:39:44

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索