Hi, I am using Stata 14.1 and exporting data sets in Stata to excel using -export-. However, I'm having trouble retaining the formatting I have in Stata when exported to Excel - for instance I cant retain the comma separation on 1,000 when exported to Excel. The only way I can do this is convert to a string value and export to excel. The problem with this is that when it is exported to Excel, it appears as a string rather than a number. If I had one Excel file, I could just 'convert to number' however this is not feasible on 60 tabs.
Is it possible to use putexcel - which appears to be able to set cell formats in Excel to export a dataset? Having read a number of tutorials on how to export with putexcel, the only ones I have come across relate to either exporting charts or exporting stored estimation results.
This is my current set up for exporting Stata files and then also exporting related chart.
Thanks
Tim
Is it possible to use putexcel - which appears to be able to set cell formats in Excel to export a dataset? Having read a number of tutorials on how to export with putexcel, the only ones I have come across relate to either exporting charts or exporting stored estimation results.
This is my current set up for exporting Stata files and then also exporting related chart.
Code:
clear
capture: log close export_to_excel
log using "${logdir}export_to_excel.log", replace text name(export_to_excel)
clear
filelist, dir("$outdir") pattern("*.png") norecursive
generate group1 = 1 if regexm(filename, "^incOfSTIA")
replace group1 = 2 if regexm(filename, "^incOfTIA")
replace group1 = 3 if regexm(filename, "^incOfstroke")
replace group1 = 4 if regexm(filename, "^prOfSTIA")
replace group1 = 5 if regexm(filename, "^prOfTIA")
replace group1 = 6 if regexm(filename, "^prOfstroke")
label define Group 1 "inc_STIA" 2 "inc_TIA" 3 "inc_stroke" 4 "pr_STIA" 5 "pr_TIA" 6 "pr_stroke"
label values group1 Group
drop if group1==.
decode group1, gen(group2)
save "${outputs}png_excel_export.dta", replace
use "${outputs}png_excel_export.dta", clear
local obs = _N
gen obs2 = _n
forvalues i=1(1)`obs' {
preserve
keep if obs2 ==`i'
local group = group2
local name = filename
di "`name'"
local tabname = regexr("`name'","\.png","")
di "`tabname'"
putexcel set "`group'", sheet("`tabname'") modify
export excel using "`group'.xlsx", sheet("`tabname'") sheetmodify firstrow(variables)
putexcel (I1)=picture("`name'")
restore
}
clear
filelist, dir("$outdir") pattern("*.dta") norecursive
generate group1 = 1 if regexm(filename, "^incOfSTIA")
replace group1 = 2 if regexm(filename, "^incOfTIA")
replace group1 = 3 if regexm(filename, "^incOfstroke")
replace group1 = 4 if regexm(filename, "^prOfSTIA")
replace group1 = 5 if regexm(filename, "^prOfTIA")
replace group1 = 6 if regexm(filename, "^prOfstroke")
label define Group 1 "inc_STIA" 2 "inc_TIA" 3 "inc_stroke" 4 "pr_STIA" 5 "pr_TIA" 6 "pr_stroke"
label values group1 Group
drop if group1==.
decode group1, gen(group2)
save "${outputs}dta_excel_export.dta", replace
use "${outputs}dta_excel_export.dta", clear
local obs = _N
gen obs2 = _n
forvalues i=1(1)`obs' {
preserve
keep if obs2 ==`i'
local group = group2
local name = filename
use "`name'", replace
local tabname = regexr("`name'","\.dta","")
di "`tabname'"
export excel using "`group'.xlsx", sheet("`tabname'") sheetmodify firstrow(variables)
restore
}
Tim

Comment