SAS 程序冷知识——ods生成excel

一、程序代码

以下是用ods 生成excel的例子,先上代码。

ods excel file="path\cc.xlsx" style=pearl options(sheet_name="sheet名字" sheet_interval='none' embedded_footnotes='yes' embedded_titles="yes" contents="yes");

proc report data=dsn;

column name n;

define name / group;

compute name;

length link $100;

link =cats(name,".rtf");

call define(_col_,'url',link);

endcomp;

run;

ods excel close;

ods生成excel有两个方法,一个是ods excel 还有一个是 ods tagsets.excelxp。后者其实生成的不是真excel,是xml格式,后缀也不能写xlsx,只能是是xls。另外,call define(_col_,'url',link);中的‘url’是可以加超链接的,link不是sas程序或选项,是自定义的变量。

二、option选项

options(。。。。)中有如下选择:

1、sheet_name="sheet名字" ,就是添加excel的sheet的名字。

2、sheet_interval='none',这个选项是决定什么时候更换excel的sheet的,毕竟我们不希望所有的表都写在一个sheet里。这个选项有如下的值可以选:

NONE:他的意思是所有的数据都放在一个sheet里。只要不换sheet名,就不换sheet。

BYGROUP:过程步中一般可以用by选项分组,这个选项可以让每个by选项的分组,作为一个独立的sheet,sheet名字就是by里面变量的值。

PAGE:每一页作为一个独立sheet,sheet名没试过,估计是自定义的。

PROC:每个过程步的结果一个sheet,一般来说过程步除了report一类报告型的,都有名字,没试过,应该是默认名作为sheet名字

NOW:立刻生成一个新的sheet,其实如果是NONE的话声明新的sheet名字也可以换sheet,但这个选项不知道有什么实际作用。

TABLE:每个表格一个sheet,名字应该是用默认的。

以上我觉得真正有意义的可能就是 NONE BYGROUP ,因为“NONE”加“sheet名重定义”就已经可以随意增加sheet了。

3、embedded_footnotes='yes' :加入脚注

4、embedded_titles="yes":加入标题

5、absolute_column_width='16px' :设置绝对列宽。单位可选。

6、absolute_row_height='20':设置绝对列高。单位可选。

7、autofilter='all':设置筛选下拉菜单。就是excel里一般第一行的那个下拉小箭头。一般用来筛选排序用的。除了all还有如下选择:

ALL:全都加筛选。它只有表格从A1单元格开始的时候才有效(start_at=可以修改起始位置)。

NONE:全都不加筛选(默认值)

range:输入范围。例如‘3-5’,或者‘A:D’这样。值得注意的是这里的范围是相对范围,而不是绝对范围。它不是参照整个excel表来定的位置,而是参照具体表格的位置。比如A和D并不是指的excel里的A列和D列,它指的是excel表里的第1列和第4列。一旦用start_at修改其实位置就会发现,如果起始位置在excel的B列,range设置为B:C,那么实际上结果将在excel里的C列和D列生成筛选。用数字表示范围也是类似的。另外,筛选并不是只能在第一行产生,它是在表头所在的那一行生成的。

column:输入具体变量的位置,但只能输入一个。例如:'2'。与range里的情形类似,该数字是相对表格的位置,不是excel里sheet的位置。

8、sheet_label='XXX':设置sheet名的前缀,它指定的值将作为所有的sheet名称的前缀。但是sheet_name选项会使得这个选项无效

9、start_at="B2":设置表格起始位置,默认是第一行的第一个单元格。这个选项能决定表格在sheet中的位置。

10、title_footnote_width="10":这个选项可以把标题脚注放到合并单元格里。设置数字10,就可以把横向10个单元格(包含标题或脚注)合并成一个。

11、title_footnote_nobreak="yes":可以直接将标题,脚注,by行等那种跨行的合并单元格,使得合并的单元格数目正好等于表格变量的数目。这个选项会覆盖title_footnote_width的影响。

12、absolute_column_width='100px' :设置整个sheet的变量宽度。

13、absolute_row_height='20':设置整个sheet的变量高度。

14、embed_titles_once="yes":标题只出现一次。我们可以设置一个sheet里纵向罗列很多表,这个选项可以让这些表的标题只出现一次。

15、embed_footnotes_once="yes":同上

16、frozen_headers='on':冻结首行。默认为列标题所在行。如果输入数字则冻结对应行以上的部分,注意这个数字是绝对位置,不论表格位置在哪里,都会冻结设定的位置。

17、frozen_rowheaders='3':冻结列。默认冻结表格最后一列的左边所有列。也可以输入数字,该数字也是绝对位置。

18、hidden_columns='1, 2, 5, 6, 8-10':隐藏列。还可以用字母表示列,但数字字母不能混用。这里列位置的引用时绝对的,是按excel的sheet的位置,而不是按表位置为参照的。

19、hidden_rows='1,2,5,6,8-10':隐藏行,同上。

20、orientation='landscape':sheet横向或纵向。

21、flow="header,data":去掉因字符过长而自动生成的换行符。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容