楼主: 白风黑息11
2336 8

[问答] 使用export导出excel时,excel的表单名称会被截断 [推广有奖]

  • 0关注
  • 0粉丝

大专生

85%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
573 点
帖子
56
精华
0
在线时间
65 小时
注册时间
2013-5-10
最后登录
2023-8-9

楼主
白风黑息11 发表于 2020-7-30 11:15:33 |AI写论文
1论坛币
使用export把sas数据集导出为excel数据集时,用sheet=命名excel的表单名会出现表单名被截断的情况,有什么办法可以不被截断嘛?

最佳答案

Cecilia_Xi 查看完整内容

楼主可以试试这个,希望有用!我的表单名设过挺长的,没有截断过。 ods excel options(sheet_name='XXX') file="路径\yyyy.xlsx" ; proc print data=sashelp.cars; run; ods excel close;
关键词:export EXCEL xport exce xcel

回帖推荐

Cecilia_Xi 发表于8楼  查看完整内容

ods excel,导出第一个sheet时,用file明确导出的文件路径及文件名,第二个sheet时就不需要再用file了(没有replace option)。参加如下code: 此外,proc print 加label的话,可以导出label。proc export也可以的,有一个label option

沙发
Cecilia_Xi 在职认证  发表于 2020-7-30 11:15:34
楼主可以试试这个,希望有用!我的表单名设过挺长的,没有截断过。

ods excel options(sheet_name='XXX') file="路径\yyyy.xlsx" ;
        proc print data=sashelp.cars;
        run;
ods excel close;

藤椅
whymath 发表于 2020-7-30 21:10:06
使用引擎 dbms=xlsx

板凳
白风黑息11 发表于 2020-8-4 15:52:07
whymath 发表于 2020-7-30 21:10
使用引擎 dbms=xlsx
写了dbms=xlsx的,还是不行哎

报纸
whymath 发表于 2020-8-5 23:10:46
抱歉,我尝试过并查了资料。确实不可以超过31个字符。
有人解释说Excel2007就支持255个字符长度的工作表名称,但Excel UI不支持,故不建议尝试:
https://stackoverflow.com/questions/3681868/is-there-a-limit-on-an-excel-worksheets-name-length

地板
白风黑息11 发表于 2020-8-28 17:05:52
whymath 发表于 2020-8-5 23:10
抱歉,我尝试过并查了资料。确实不可以超过31个字符。
有人解释说Excel2007就支持255个字符长度的工作表名 ...
好的,谢谢

7
白风黑息11 发表于 2020-8-28 17:16:29
Cecilia_Xi 发表于 2020-8-5 23:55
楼主可以试试这个,希望有用!我的表单名设过挺长的,没有截断过。

ods excel options(sheet_name='XXX' ...
导出一张表单的时候可以导出来,我把这段放在宏里面想要导出很多的时候最后excel打不开
%macro printToExcel(rawdslist=);
%let i=1;
%do %while(%scan(&rawdslist.,&i.,%str( )) ne %str());
    %let currds=%scan(&rawdslist.,&i.,%str( ));
    %let str=%scan(&string.,&i.,%str( ));

ods excel options(sheet_name="&str.")
        file="D:\study\_study\Conduct\Status Report\DataListing_&sysdate..xlsx";
        proc print data=out.&currds.;
        run;
ods excel close;

        %let i=%eval(&i.+1);
%end;
%mend;
另外还想问下这个方法导出excel可以把变量名换成sas label吗?

8
Cecilia_Xi 在职认证  发表于 2020-8-30 10:36:02
白风黑息11 发表于 2020-8-28 17:16
导出一张表单的时候可以导出来,我把这段放在宏里面想要导出很多的时候最后excel打不开
%macro printToE ...
ods excel,导出第一个sheet时,用file明确导出的文件路径及文件名,第二个sheet时就不需要再用file了(没有replace option)。参加如下code:

  1. data a1 a2 a3 a4;
  2.         set sashelp.air;
  3.         if air<150 then output a1;
  4.                 else if air<350 then output a2;
  5.                         else if air<450 then output a3;
  6.                                 else output a4;
  7. run;

  8. %macro export;

  9. ods excel options(sheet_name='a1') file="文件路径\a.xlsx" ;
  10.     proc print data=a1;
  11.     run;
  12. %do i=2 %to 4;
  13. ods excel options(sheet_name="a&i");
  14.     proc print data=a&i;
  15.     run;
  16. %end;

  17. ods excel close;

  18. %mend;
  19. %export
复制代码
此外,proc print 加label的话,可以导出label。proc export也可以的,有一个label option

9
白风黑息11 发表于 2020-9-25 15:20:36
Cecilia_Xi 发表于 2020-8-30 10:36
ods excel,导出第一个sheet时,用file明确导出的文件路径及文件名,第二个sheet时就不需要再用file了(没 ...
6666跑出来也有label

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 08:37