1. 将文件夹中的excel批量转成dta文件
PS. 一定要记得将第一行添加为变量,不然会很崩溃。后面处理一直有格式问题
//将文件夹下所有excel文件转化成dta格式 cd "C:UsersadmirDesktop分析师预测process2019Fenddt2020" xls2dta,replace recursive : import excel using C:UsersadmirDesktop分析师预测process2019Fenddt2020,firstrow clear
2. 纵向合并所有的dta文件
(1)用openall
local in myfilelist: dir . files "*.dta"
openall *
save "C:UsersadmirDesktop分析师预测processappendexcel2020.dta", replace
local files : dir "C:UsersadmirDesktop分析师预测process2019Fenddt2020" files "*.dta"
foreach file in `files' { //删除中间生成的dta文件
capture erase `file'
}
(2)用gettoken
cd "C:UsersadmirDesktop分析师预测process2015Fenddt2016"//批量删除文件夹下的dta文件
local s: dir "C:UsersadmirDesktop分析师预测process2014Fenddt2015" 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:UsersadmirDesktop分析师预测process2014Fenddt2015" files "*.dta"
dis`files'
foreach file in `files' {
append using `file'
}
count
save appendexcel3, replace