带有 SAS ODS 的可点击超链接 EXCEL

Clikable Hyperlink with SAS ODS EXCEL

我遇到了 SAS ODS 生成的超链接问题 EXCEl。 我正在使用 SAS9.4TM3 和 EXCEL 2013.

我编码了这个

data lst_tie;
NUM_TIE = '2900004227803';
output;
NUM_TIE = '2900004233852';
output;
run;
data lst_tie(drop=HL);
set lst_tie;
format HL2 0.;
HL = "http://tier-kh.cm-cic.fr/tie6_tiers/default.aspx?trt=tiesyn&banque=02297&caisse=38848&tiers="||NUM_TIE;
HL2 = '=LIEN_HYPERTEXTE("'||HL||'";"'||NUM_TIE||'")';
run;

ods excel file = "$GRPFPU/test_tiesyn.xlsx"
    options (absolute_column_width="3cm,20cm,20cm");
proc report data=lst_tie
;
column  NUM_TIE   
        HL2;
define num_tie / "Numero" style(column)={ width=100%};
define HL2  / "Tiers" style(column)={tagattr='wraptext:no' width=100%};
quit; 
ods excel close;

URL 似乎编码得很好:

=LIEN_HYPERTEXTE("http://tier-kh.cm-cic.fr/tie6_tiers/default.aspx?trt=tiesyn&banque=02297&caisse=38848&tiers=2900004227803";"2900004227803")

无回车return (CR).

但是,在打开 XLSX 文件时,在 LIEN_HYPERTEXTE(英文 HYPERLINK)

之后有一个 CR 字符

XLSX Preview 1

但是如果我删除了 CR,那么超链接就可以了。

XLSX OK

我尝试了几个选项 WIDTH_COLUMS,Wrap Option,但没有办法。

谢谢

ODS EXCEL 试图通过在长行中插入物理换行符来使您的打印输出更漂亮。显然它没有注意到你的值是一个公式而不是纯文本。

从 SAS 9.4M4 开始,您可以将 flow="tables" 添加到 ODS 语句。看到这个 SAS Blog post

ods excel file = "$GRPFPU/test_tiesyn.xlsx"
    options (absolute_column_width="3cm,20cm,20cm"
             flow="tables"
            )
;

对于较旧版本的 SAS,例如您的版本,请尝试使列变宽,这样它就不会尝试换行。尝试将 width=1000% 而不是 width=100% 添加到包含链接的列中。

define HL2  / "Tiers" style(column)={tagattr='wraptext:no' width=1000%};

为了有一个可点击的超链接,我添加了一个格式 ``

data lst_tie;
    NUM_TIE = '2900004227803';
    output;
    NUM_TIE = '2900004233852';
    output;
run;

data lst_tie;
    set lst_tie;
    format HL2 0.;
    HL = "http://tier-kh.cm-cic.fr/tie6_tiers/default.aspx?trt=tiesyn&banque=02297&caisse=38848&tiers="||NUM_TIE;
run;

data one;
    set lst_tie;
    retain fmtname '$urltie';
    rename NUM_TIE=start;
    label =  HL;
run;

proc format cntlin=one;
run;

ods excel file = "$GRPFPU/test_tiesyn.xlsx"
    options (absolute_column_width="3cm,20cm,20cm" flow="tables");

proc report data=lst_tie
;
    column  NUM_TIE   
    ;
    define num_tie / "Numero" style(column)={TAGATTR='format:0' width=1.5in url=$urltie. color=cx0000FF textdecoration=underline /*tagattr='wraptext:no' width=100%*/
    };
quit;

ods excel close;

``