报表草稿

学习心得:最近发现查找SAS资料的非常方便又有效的方法:在必应网上所有要查的英文关键词,超厉害的。

目的:处理报表的输出到多个sheet中、报表指定位置加颜色

1.tabulate产生的多个报表输出到不同的sheet中,在必应网上搜索SAS tabulate sheet,第三个界面就是

这篇文章介绍了使用ODS tagsets.excelxp可以实现报表输出到多个sheet中,具体的文章和数据代码可以在support.sas.com/saspresents下载到类似的。

2.实践:拿sashelp.class中的数据做例子

(1)取数据
LIBNAME MYLIB ".\DATA";/*自己取一个位置放数据*/

DATA MYLIB.TRY;
 SET SASHELP.CLASS(FIRSTOBS=1 OBS=10);
RUN;

(2)使用ODS Tagsets.ExcelXP将tabulate等(print tabulate report)输出到xml中,可以用EXCEL打开

TITLE;/*清理之前的title*/
FOOTNOTE;/*清理之前的footnote*/
ODS _ALL_ CLOSE; /*关闭之前所有的ODS设置*/
LIBNAME MYLIB ".\DATA" ACCESS=READ;
  /*******************Start******************/
ODS TAGSETS.EXCELXP FILE=".\TRY.xml" STYLE=PRINTER;

TITLE ‘TRY SASHELP.CLASS‘;
FOOTNOTE;
 ODS TAGSETS.EXCELXP OPTIONS(SHEET_NAME="SEX*WEIGHT 性别体重");/*设置输出到第一个sheet中的名称,否则使用默认的名称*/
  PROC TABULATE DATA=MYLIB.TRY;
  CLASS SEX WEIGHT;
  TABLE SEX,WEIGHT*(N*F=6.0);
 RUN;
 
 ODS TAGSETS.EXCELXP OPTIONS(SHEET_NAME="AGE*HEIGHT 年龄身高");/*设置输出到第二个sheet中的名称,否则使用默认的名称*/
 PROC TABULATE DATA=MYLIB.TRY;
  CLASS AGE HEIGHT;
  TABLE AGE,HEIGHT*(N*F=6.0);
 RUN;
ODS TAGSETS.EXCELXP CLOSE;

/**************END********/

(3)设置输出到excel中的格式颜色等,使用PROC TEMPLATE;定义style

proc template;
 define style styles.SUGI31;
 parent = styles.Journal;
/*****************************************************************************
Use approximate "SUGI reddish brown" cx993300 for some foreground elements.
Use black for other foreground elements.
Use approximate "SUGI tan" cxffcc99 for some background elements.
*****************************************************************************/
 replace colors /
 ‘docbg‘= cxFFFFFF
 ‘contentbg‘ = cxFFFFFF
 ‘contentfg‘ = cx000000
 ‘titlefg‘ = _undef_
 ‘link2‘=cx0066AA
 ‘link1‘=cx004488
 ‘bg5‘=cxFFFFFF
 ‘bg4‘=cxFFFFFF
 ‘fg4‘=cx000000
 ‘bg3‘=cxFFFFFF
 ‘fg3‘=cx000000
 ‘bg2‘=cxffcc99 /* Header and Row Header cells */
 ‘bgA1‘=cxFFFFFF
 ‘fgA1‘=cxff0000 /* Border lines */
 ‘fg2‘=cx993300 /* Header and Row Header cells */
 ‘fg‘ =cx993300; /* Titles and Footnotes */

/* Redefine some characteristics of some of the standard styles. */
 style table from table /
  borderwidth = 0;
 style header from header /
 just=center
 font_weight = bold
 bordertopwidth = 3 
 borderbottomwidth = 3
 borderleftwidth = 0
 borderrightwidth = 0;

style rowheader from rowheader /
  font_weight = bold;
/* Controls border lines of some Header cells. */
 style header_r_border from header /
  just= center
  bordertopwidth= 3
  borderbottomwidth = 3
  borderleftwidth = 0
  borderrightwidth = 3;
/* Controls border lines of the TABULATE box cell. */
 style header_box from header /
  just= center
  bordertopwidth= 3
  borderbottomwidth = 3
  borderleftwidth = 0
  borderrightwidth = 3;
/* Controls border lines of some Row Header cells. */
 style rowheader_r_border from rowheader /
  bordertopwidth= 0
  borderbottomwidth = 0
  borderleftwidth = 0
  borderrightwidth = 3;
/* Assigns an Excel format to certain Data cells. */
 style data_z8 from data /
  tagattr=‘format:00000000‘;
 end;
run; quit;

对应的将前面的

ODS TAGSETS.EXCELXP FILE=".\TRY.xml" STYLE=PRINTER;

改为

ODS TAGSETS.EXCELXP FILE=".\TRY.xml" STYLE=SUGI31;

效果如下:

2.设置输出的表格颜色

OPTIONS CENTER;
TITLE;
FOOTNOTE;
ODS _ALL_ CLOSE;
LIBNAME MYLIB ".\DATA" ACCESS=READ;

/*定义颜色*/
%let color1=#FFFF80; /*淡黄色*/
%let color2=#80FF80; /*浅绿色*/
%let color3=#DBFE8E; /*淡黄绿色*/

/***又一次使用template定义table****/

PROC TEMPLATE;
 Define table MYTABLE;
 cellstyle _row_ = 1 && _col_ = 1 as {BackgroundColor=&color1. },/*定义确定的某个表格指定颜色*/
 _row_ = 1 && _col_ = 2 as {BackgroundColor=&color2. },
 _row_ = 1 && _col_ = 3 as {BackgroundColor=&color3. },
 _datatype_ = "num" as {color=red},
 _datatype_ = "char" as {color=blue};
END;
RUN;QUIT;

PROC TABULATE DATA=MYLIB.TRY OUT=A;
  CLASS SEX WEIGHT;
  TABLE SEX,WEIGHT*(N*F=6.0);
 RUN;
 PROC TABULATE DATA=MYLIB.TRY OUT=B;
  CLASS AGE WEIGHT;
  TABLE AGE,WEIGHT*(N*F=6.0);
 RUN;
 /**********start*****将模板应用到tabulate的输出*/
ODS PDF FILE=".\DIFF_color.PDF";
 DATA _NULL_;
  SET A;
  FILE PRINT ODS=(TEMPLATE=‘MYTABLE‘);
  PUT _ODS_;
 RUN;
 DATA _NULL_;
  SET B;
  FILE PRINT ODS=(TEMPLATE=‘MYTABLE‘);
  PUT _ODS_;
 RUN;
 ODS PDF CLOSE;

/********END********/

结果:

时间: 2024-10-11 12:38:10

报表草稿的相关文章

eclipse birt报表开发入门

在开发中,报表或多或少会涉及到,有些报表可能比较简单,而有些报表可能很复杂.无论如何,这些报表功能的开发都是可以通过一些公共的组件来实现的,比如我现在所在的这家公司,如果想要制作报表,只需要配置下报表配置下就可以了(这个报表是通过特定实现的报表语言实现了,支持内部自定义的语言,最终将这些相应的数据保存到数据库中,对报表中的一些事物进行了抽象,比如:报表模型, 查询参数.).如果要自己手动的一步一步的编写报表,那么相对会比较麻烦,如果能提供一个框架,只需要进行一些配置就可以完成自定义报表,那岂不很

使用多级分组报表展现分类数据

当你走进便利店,你会发现所有的商品都是按类排放的,分类排放可以帮助您快速找到同类商品,也可以快速发现你想要的商品. 当去饭店吃饭的时候,菜单上的菜也是按类别排列的,比如凉菜,热菜,汤类,主食等.点菜时你会直接翻到你想要的那一类菜单,点菜. -- 通过上面场景,大家就理解分组呈现数据的好处了,分组可以帮助快速定位,方便数据查找,汇总,分析数据趋势等.有时候分析某一单一的商品并无价值,所以采用分组是最常见也是最简单的数据分析手段. 分组报表则是在报表中使用分组功能,是工作中最常用的报表类型,分组功能

使用Navicat定时备份mysql数据库和创建报表并邮件自动发送

数据库备份在现代计算机高速发展的今日变得日益重要,程序员往往因为不重视而忽略备份数据,导致数据丢失,造成非常严重的后果.定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和创建相关的计划任务. (一)使用Navicat自动备份数据库: 1,打开navicat客户端,连上mysql后,双击左边你想要备份的数据库.点击"计划",再点击"新建批处理作业"具体如下图. 2,双击上面的可用任务,它就会到下面的列表里去,也代表你选择了这个任务 3,点

Zabbix 使用规范和生成报表

一.软件版本 操作系统:CentOS-6.5-x86_64 zabbix版本:3.0.3 二.zabbix标准:   1.  主机命名规范: BJ-monitor-h-zabbix-01 **命名规范是,我们看一台主机能够知道主机位于哪里:BJ:做什么的:monitor:虚拟化还是实体机:h:跑什么服务:zabbix  第几台:01 2.  一台主机直接关联多个模板:不用创建多个分组(可以结合CMDB平台) Memcached :192.168.10.100 Php Linux:192.168.

Powershell 创建炫丽美观的Html报表

我们通过PowerShell可以获取各种信息,如何保存这些获取的信息呢?最简单的方法是保存为csv或者是xml文件,这样可以轻松的导入导出.不过这两种文件在人眼的可读性上都不够美观.xml从程序的角度非常方便,但是看起来很不舒服:同样的,尽管csv文件可以通过Excel打开,但是最重要的一点,他没有颜色!对于很多习惯把Excel表格标注的五颜六色的人来说,csv的世界实在是太昏暗了. 那么直接保存为XLSX文件如何呢?传统的PowerShell对Office的支持很不好,只能通过ComObjec

移动端报表JS开发示例--获取定位

上次分享了移动端报表JS开发的系统概念,后来我又回去摸索了一些案例.之前接触到的FineReport的APP客户端可以用来打卡签到,就好奇研究了以下,这次就来聊一聊报表移动端开发如何实现定位功能. 1. 解决思路 在用FineReport设计模板的时候添加一个按钮控件,点击该按钮的时候,获取当前地理位置,并将该位置信息复制给某个单元格,最后在客户端填报当前模板即可. 2. 示例 实现如下图所示效果,点击地理位置按钮获取当前位置与当前时间,并显示在下方对应的单元格中: 2.1 模板制作 打开设计器

ASP.Net 报表的创建

报表所用文件: (1)报表设计文件:xxx.rdlc文件 (2)调用报表文件: xxx.aspx文件 报表实现: (1)aspx调用代码:<rsweb:ReportViewer ID="report1" runat="server" Font-Names="Verdana" Font-Size="8pt"  Height="100%" CssClass="reportView" W

java报表工具FineReport常见的数据集报错错误代码和解释

在使用finereport制作报表,若预览发生错误,很多朋友便手忙脚乱不知所措了,其实没什么,只要看懂报错代码和含义,可以很快的排除错误,这里我就分享一下finereport的数据集报错错误代码和解释,如果有说的不准确的地方,也请各位小伙伴纠正一下. NS-war-remote=错误代码\:1117 压缩部署不支持远程设计 NS_LayerReport_MultiDs=错误代码\:1101 行式引擎不支持多数据源展示 NS_LayerReport_RowCol=错误代码\:1102 行式引擎不支

JS打印和报表输出

JS打印和报表输出2008-07-15 22:16一打印: 转自:http://hi.baidu.com/afei0211/blog/item/20523955ca8bebc2b745ae98.html (1) 在实际应用中!特别是一些公司需要报表输出和打印!这个时候我们就会用到JS的打印和报表输出功能!当然打印很简单就是window.print();你也可以在按钮的onclick事件中写上return print()可以实现打印效果!这个时候打印你会发现打印出来的是整个页面,包裹着网站的log