xls2dta命令:将excel文件转换成dta文件
在stata应用中,往往需要对多个excel中的数据进行处理,这就需将excel格式的数据转化为stata格式的数据,通常的做法是读入(import excel)、保存为dta(save)、合并(append)三步走。今天为大家介绍的xls2dta命令可以一步到位地将一个或多个excel转化为stata格式的dta文件,并可以同时实现横纵向合并和数据类型转换等操作,功能强大且简便易上手。
注意xls2dta是一个前缀命令,后面可以跟import excel、merge、append等命令实现特定功能。
一、安装xls2dta命令
clear all
ssc install xls2dta,replace
二、开始使用:xls2dta命令将excel文件转换为dta文件。
0.准备待转换的excel文件。
在国泰安数据库中下载了2010-2018年三家上市公司的资产负债表、利润表、现金流量表,手动处理。对于这三家公司,创建三个excel文件命名为“财务报表1”“财务报表2”“财务报表3”,每个excel文件中有3个sheets,分别为三家公司的利润表、资产负债表、现金流量表。
1.创建文件夹,改变缺省路径。
clear all
capture mkdir e:/xls2dta
cd e:/xls2dta
2.文件转换。
2.1单个excel的单个表单转换为dta文件。
这是最基本的用法,通过以下一行命令就可以实现。
xls2dta: import excel 财务报表1.xlsx
把当前路径下的财务报表1中的第一张工作表单“利润表”转换成dta文件,然后保存到当前路径下。在不指定sheet的范围时,xls2dta默认处理第一张表单。
2.2单个excel的多个表单转化为dta文件。
xls2dta,sheet(1/3): import excel 财务报表1.xlsx,first case(lower)
指定转换财务报表中的前三个sheets,另外可以附加import excel中的选项,令第一行变量作为标题,第一行英文字母为小写。
程序运行结果为:
use "e:\xls2dta\财务报表1_1.dta",clear
2.3多个excel的单个表单转换成dta文件。
recursive表示递归地搜索文件名,默认搜索指定路径下的所有子目录中的excel文件,使用这一选项可以实现多个excel文件的一次性转换。sheet(1/3)用于指定前三张表单。把e:/xls2dta/merge路径下的所有excel文件中的前三个表单转换成dta文件,保存到当前路径下。此选项需要安装filelist。
clear all
ssc install filelist,replace
xls2dta,replace recursive : import excel using e:/xls2dta
程序运行结果如下:
use 财务报表2.dta,clear
2.4多个excel的多个表单转换成dta文件。
xls2dta,replace sheet(1/3) recursive : import excel using e:/xls2dta
类似地,使用recursive搜索e:/xls2dta路径下的所有excel文件,指定前三个表单,进行分别转换。程序运行结果如下:
use 财务报表1_1.dta,clear
3合并处理。
3.1横向合并。
xls2dta,replace clear allsheets: merge m:m A using e:/xls2dta/财务报表1.xlsx
save merge.dta,replace
将e:/xls2dta/财务报表1.xlsx文件中的所有sheets横向合并起来,转换成一个dta文件。allsheets用于指定所有表单。转换成的dta文件变量名默认依次为ABCDE等大写英文字母。使用A作为关键变量进行横向合并。
打开merge.dta,
3.2纵向合并。
xls2dta,replace clear sheet(1) :append using e:/xls2dta/xls/财务报表*.xlsx
save append.dta,replace
append.dta的部分数据截图如下:
以上就是今天的全部内容了。