Excel的footnote:解决换行所遇问题的简述
TFL的格式一般情况下是rtf,运用proc report可输出footnote。程序如下:
ods rtf ...
title ....
proc report ...
compute after _page_; #在每页结束时插入
line @1 "..."; #第一行footnote
line @1 "..."; #第二行footnote
但我司偶尔也会把listing输出成excel,原因应该是需要列出的变量过多,rtf限于展示宽度无法像excel那样方便。
虽然可以使用proc report,但是无需那么严格,可以不写。程序如下:
ods excel file="..." options (....);
title ...;
footnote j=left "..."; #j=l 可控制footnote的位置。默认是居中显示
如果footnote "..."内容只有一行则无需考虑换行,如果多行并且像下列这样展示,
需要加上#n,#为escapechar。内容都是要填进"..."中。
一般像footnote这类的最好是做一个宏变量,意思是无需更改listing的程序,当footnote改变时,我们只需要在run一遍程序即可。
但是我们习惯于把listing生成为RTF而不是excel,所以换行符会使用\line,写起来的格式有很多,以下都可以实现换行。
"{\line}footnote",
"{\line }footnote",
"\linefootnote",
"\line footnote" 。
如何用程序精准把这四类换行符换成#n呢?
最简洁最准确就是正则,虽然可能需要花点时间理清逻辑。其他的可能逻辑简单,但是代码繁琐。
prxchange("s/(\{\s*\\line(\s*|)\})|(\\line(\s|))/#n,-1,&footnote.);
如有问题,欢迎后台私信讨论。