查看原文
其他

爬虫俱乐部又出新命令了——wordconvert转换你的word文件

薛原 Stata and Python数据分析 2022-03-15

好消息,爬虫俱乐部又出新命令了!

去年,李春涛教授带领爬虫俱乐部的成员连续发布了chinagcodechinaaddresscnintradaysubinfilecnstock等等实用的命令,实现了中文地址与经纬度之间的转换、股票分时交易数据的抓取、文本文件的修改、股票代码的获取等等功能,并对以前发布的cntrade和chinafin命令做了修改,让这些命令可以在Stata14以及更高版本的环境下运行。如今,爬虫俱乐部又憋了一个大招,李春涛教授和爬虫俱乐部成员薛原编写了一个新的命令——wordconvert。这个命令通过调用PowerShell和MS Word实现了rtf、doc、docx、dot、pdf、xps等文件相互转换(pdf和xps目前只能被其他文件转成,不能转成其他文件)。

要使用这个命令,首先要保证电脑里面装有Microsoft Word2007或更高的版本。此外,还需要配置PowerShell。包括如下两点:

1、参考之前的推文《朝花夕拾 | 如何解决PowerShell禁止脚本运行的问题?》,将PowerShell的ExecutionPolicy设置为RemoteSigned,具体方法推文中介绍很详细了。

2、将PowerShell所在的路径添加到环境变量中。找到PowerShell所在的路径,例如笔者电脑上的PowerShell路径是“C:\Windows\System32\WindowsPowerShell\v1.0”。右击我的电脑,点击属性,在最左端选择高级系统设置。

在弹出的系统属性中点击环境变量。

双击弹出窗口的中系统变量下面的Path,在弹出来的编辑环境变量窗口中,把PowerShell的路径加到最后。

如果用的不是Windows10系统的话,这里添加路径会有所区别,需要在弹出的窗口中把路径加在变量值的后面,中间用分号分隔开。

完成了以上的配置工作后就可以开始使用wordconvert命令了。在help文件中,我们给出的例子是从我们的网站上下载rtf和docx文件,并实现转换。很简单,大家可以根据help文件自己操作。我们这里不使用help文件里的例子,我们用rtf命令配合esttab命令生成一个rtf文件,并用wordconvert命令对这个rtf文件进行操作。

例子

clear all

cap mkdir E:\测试wordconvert

cd E:\测试wordconvert

sysuse auto, clear

tempname handle

rtfopen `handle' using 测试wordconvert.rtf, replace

file write `handle' `"{\pard\b `=ustrto("描述性统计", "gb2312", 1)' \par}"'

rtfclose `handle'

estpost summarize price mpg rep78 weight length, d

esttab using 测试wordconvert.rtf, cells("count mean(fmt(3)) sd(fmt(3)) min(fmt(3)) max(fmt(3))") noobs  append compress

rtfappend `handle' using 测试wordconvert.rtf, replace

file write `handle'   "\page"

file write `handle' `"{\pard\b `=ustrto("回归结果", "gb2312", 1)' \par}"'

rtfclose `handle'

reg price mpg weight rep78

est store m1

reg price mpg length weight

est store m2

esttab m1 m2 using 测试wordconvert.rtf, append star( * 0.10 ** 0.05 *** 0.01 ) ar2 nogaps

在我们生成的rtf文件里面就是两个表。

现在,我们可以用wordconvert把这个文件转成其他格式,可以转换成doc、docx、dot、pdf和xps。这里要注意一点,由于PowerShell默认识别的编码是ASCII,在使用Stata14以及更高版本时,由于使用的编码是utf8,所以当路径和文件名称出现中文时,需要用encoding选项设置对应的编码,简体中文设置为gb2312即可。

wordconvert "测试wordconvert.rtf" "测试wordconvert.doc", encoding(gb2312) replace

wordconvert "测试wordconvert.rtf" "测试wordconvert.docx", encoding(gb2312) replace

wordconvert 测试wordconvert.rtf 测试wordconvert.dot, encoding(gb2312) replace

wordconvert 测试wordconvert.rtf 测试wordconvert.pdf, encoding(gb2312) replace

wordconvert 测试wordconvert.rtf 测试wordconvert.xps, encoding(gb2312) replace

这几个文件就已经转换好了。使用这个命令与Stata15新推出的命令putdocx还能碰撞出什么样的火花呢?我们会在今后的推文中继续介绍。

目前,我们团队还在积蓄能量憋大招,会继续发布新的命令。以前已经发布的命令,经过一些Stata爱好者反馈的意见,也将进行更新,请大家关注我们的推送。

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                     文字编辑:徐苾雯

技术总编:刘贝贝



往期推文推荐:

1.高校学术大神:你的导师上榜了吗?

2.中国高校财经、管理与综合类期刊灌水排行榜

3.关于RTF你不知道的命令之番外篇

4.免费事件研究,一片片从邮局寄来

5.免费的股价同步性,一片片从邮局寄来

6.Stata叫你回家听音乐了!

7.一言不合就用stata写邮件(Outlook/Foxmail)

8.听说你想知道怎么用stata画地图?

9.I have a Stata, I have a python

10.I have a Stata, I have a Python之二——pdf转word




关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部  

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存