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的部分数据截图如下:


以上就是今天的全部内容了。