【问题标题】:Proc export to update an existing excel sheet in SAS?Proc 导出以更新 SAS 中的现有 Excel 工作表?
【发布时间】:2016-04-20 11:46:35
【问题描述】:

我正在尝试更新(不断添加行)现有的 Excel 文件(如果可能的话),但数据不断替换或覆盖。我希望索赔选项卡在运行 sas 时不断更新。添加“REPLACE”也会覆盖数据。任何建议将不胜感激。

proc export
data=hdat.revclaimsmaster 
outfile="\TEST.xlsx"
dbms=excel;
SHEET="Claims";
run;

proc export
data=hdat.nonrevclaimsmaster  
outfile="\TEST.xlsx"
dbms=excel;
SHEET="Claims";
run;

【问题讨论】:

    标签: excel sas proc


    【解决方案1】:

    您需要“替换”选项:

    dbms = excel replace;
    

    【讨论】:

    • 这只会覆盖现有数据。我需要它添加
    • 以什么方式添加?您是否尝试将行添加到数据集或其他内容?如果是这样,为什么不在导出之前在 SAS 中编译数据集,而不是导出一堆时间
    • 没错,我想继续向现有的 Excel 工作表添加行。你能帮我举一个编译的例子吗?我对它不太熟悉。感谢您的帮助
    • 假设您有一个要导出的 SAS 数据集和第二个要导出的 SAS 数据集,并将其显示在第一个数据集的下方。假设数据集具有相同的列,您可以执行类似的操作——数据堆栈;设置数据集 1 数据集 2;跑步; -- 然后输出堆叠的数据集而不是两个单独的数据集。这将运行得更快,并且在您的情况下,实际上可以工作。如果您有具体问题,如果您编辑问题并提供更多信息会有所帮助。
    【解决方案2】:

    假设您的 SAS 数据集是本地的并且您使用的是 Windows,您可以使用一个漂亮的 SAS 宏程序调用 exportToXL。只需 google 一下,它就会附带有关如何设置的说明。一旦你掌握了窍门,它就像 123 一样简单。

    唯一需要注意的是, 1. 您需要在您的 PC 上安装 PC SAS 才能使用此程序。 2. 版本太老了,开发者没有更新来处理新的 Excel 工作簿文件格​​式,即它使用 .xls 而不是 .xlsx。也就是说,如果你擅长 SAS 编程,你可以像我一样修改程序来处理 .xlsx。

    HTH, 大厅

    【讨论】:

    • 这不是一个好的答案。如果您想让它成为一个好的答案,请提供有关%exportToXL 工作原理的更多详细信息。否则,这只是一个工具/库建议,并不是我们在 Stack Overflow 上寻找的真正内容。
    • @Joe - 谢谢,下次会记住这一点。干杯。
    【解决方案3】:

    有几种方法可以做到这一点。但是,客观上没有一个比 Superfluous 提供的答案更好 - 附加到 SAS 中的数据集然后重新导出。

    1. 使用DDE 执行更新。优点:很容易更新数据。缺点:几乎不再受支持,并且需要 excel 才能在与 SAS 相同的 PC 上运行。
    2. 使用与 Excel 的连接 (connect to excel)。优点:连接让您可以就地执行 SQL 语句,包括插入。缺点:必须符合合理的SAS数据结构,不能格式化,不能轻易进行随机插入。 (h/t Roger DeAngelis @ SAS-L 指出这一点)
    3. 使用 SAS 插件到 Microsoft Excel。优势:让您更轻松地从 Excel 中控制事物,从而获得更强大的格式化选项。缺点:单独的产品必须获得许可,并且是由 Excel 而不是 SAS 驱动的(尽管在存储过程中在服务器上运行 SAS 代码)。
    4. 从 Excel 连接到 SAS 的 OLEDB 提供程序。与 3 类似,实际上,控制少了一点,而且产品许可不同(可能更便宜)。
    5. 导入您的数据,对其进行修改,然后使用 REPLACE 重新导出。优点:在SAS中容易做,对SAS中的数据进行控制。缺点:必须符合 SAS 数据结构,必须再次写出所有行(因此可能很慢)。这大致是 Superfluous 的建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      相关资源
      最近更新 更多