1. 将文件夹中的excel批量转成dta文件
PS. 一定要记得将第一行添加为变量,不然会很崩溃。后面处理一直有格式问题
//将文件夹下所有excel文件转化成dta格式 cd "C:\Users\admir\Desktop\分析师预测\process\2019\Fenddt2020" xls2dta,replace recursive : import excel using C:\Users\admir\Desktop\分析师预测\process\2019\Fenddt2020,firstrow clear
2. 纵向合并所有的dta文件
(1)用openall
local in myfilelist: dir . files "*.dta"
openall *
save "C:\Users\admir\Desktop\分析师预测\process\appendexcel2020.dta", replace
local files : dir "C:\Users\admir\Desktop\分析师预测\process\2019\Fenddt2020" files "*.dta"
foreach file in `files‘ { //删除中间生成的dta文件
capture erase `file‘
}
(2)用gettoken
cd "C:\Users\admir\Desktop\分析师预测\process\2015\Fenddt2016"//批量删除文件夹下的dta文件
local s: dir "C:\Users\admir\Desktop\分析师预测\process\2014\Fenddt2015" files "*.dta", respectcase
gettoken f1 frest: s, parse(" ")
use "`f1‘", clear
foreach i of local frest {
append using `i‘
}
save "appendexcel2.dta", replace //保存合并后的数据
(3)for循环添加
//保存文件时设置为表头,仍然会在append时候保留,以上两种方法都不会
local files : dir "C:\Users\admir\Desktop\分析师预测\process\2014\Fenddt2015" files "*.dta"
dis`files‘
foreach file in `files‘ {
append using `file‘
}
count
save appendexcel3, replace
原文:https://www.cnblogs.com/celine227/p/14723349.html