Clikable Hyperlink с SAS ODS EXCEL - PullRequest
       14

Clikable Hyperlink с SAS ODS EXCEL

0 голосов
/ 15 января 2020

У меня проблема с гиперссылкой, созданной 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 $500.;
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")

без возврата каретки (CR) .

Но при открытии файла XLSX появляются символы CR сразу после LIEN_HYPERTEXTE (HYPERLINK in Engli sh)

Предварительный просмотр XLSX 1

Но если я удалю CR, гиперссылка в порядке.

XLSX OK

Я попробовал несколько вариантов, таких как WIDTH_COLUMS, Wrap Option, но Ни за что.

Спасибо

Ответы [ 2 ]

1 голос
/ 17 января 2020

Чтобы добавить кликабельную гиперссылку, я добавляю формат ``

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

data lst_tie;
    set lst_tie;
    format HL2 $500.;
    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;

``

1 голос
/ 15 января 2020

ODS EXCEL пытается сделать вашу распечатку красивой, вставляя физические разрывы строк в длинные строки. Очевидно, он не замечает, что ваше значение является формулой, а не простым текстом.

Начиная с SAS 9.4M4, вы можете добавить flow="tables" в оператор ODS. См. Сообщение в блоге SAS

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%};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...