You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAS使用ODS tagsets.excelxp与gridded布局导出3行2列XML布局异常求助

问题原因
  • 仅声明了2个ods region:ODS网格布局默认每个ods region对应网格中的一个单元格,原代码将3个表格的输出全部放在第一个region、剩下3个放在第二个region,会导致两列各自堆叠3张表,无法实现按行拆分的3行2列布局。
  • 注释了自动跳转参数:原代码将ods layout gridded的advance=table参数注释,该参数开启时会在每输出一个表格后自动跳转到下一个网格单元格,注释后同region内的所有输出会连续堆叠,不会触发布局跳转。
修正方案

保留advance=table参数即可实现自动按网格填充,无需手动声明ods region,按行优先的顺序输出6个表格,网格布局会自动按照3行2列的规则填充:

ods tagsets.excelxp file="mypath\Stest.xml" style=printer 
  options(
          frozen_rowheaders='no' sheet_interval='none' sheet_name='sheet1'
          embedded_titles='yes' embedded_footnotes='yes');

/* 开启advance=table,每个表格输出后自动跳转到下一个网格单元格 */
ods layout gridded columns=2 rows=3 advance=table;

/* 按行优先顺序输出6个表格,自动匹配3行2列的每个单元格 */
proc print data=table1;
title  "table1";
run;

proc print data=table2;
title  "table2";
run;

proc print data=table3;
title  "table3";
run;

proc print data=table4;
title  "table4";
run;

proc print data=table5;
title  "table5";
run;

proc print data=table6;
title  "table6";
run;

ods layout end;
ods tagsets.excelxp close;

如果需要手动精准控制每个表格的位置,也可以为每个表格单独指定region的行列坐标,写法示例:

ods layout gridded columns=2 rows=3;
ods region row=1 column=1;
proc print data=table1;run;

ods region row=1 column=2;
proc print data=table2;run;

/* 其余表格依次指定对应row和column参数即可 */

内容的提问来源于stack exchange,提问作者Cox Tox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:15:07