Proc 导出以更新 SAS 中的现有 excel sheet?
Proc export to update an existing excel sheet in SAS?
我正在尝试更新(继续添加行)现有的 excel 文件(如果可能的话),但数据不断被替换或覆盖。我希望 Claims 选项卡在 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;
您需要 "replace" 选项:
dbms = excel replace;
假设您的 SAS 数据集是本地的并且您正在使用 Windows,您可以使用漂亮的 SAS 宏程序调用 exportToXL。只需 google 即可,它附带有关如何设置它的说明。一旦掌握了它,就像 123 一样简单。
唯一需要注意的是,
1. 您需要在您的PC 上安装PC SAS 才能使用该程序。
2. 版本很旧,开发人员没有更新以处理新的 Excel 工作簿文件格式,即它使用 .xls 而不是 .xlsx。也就是说,如果您擅长 SAS 编程,您可以像我一样修改程序来处理 .xlsx。
HTH,
大堂
有几种方法可以做到这一点。 None 其中客观上比 Superfluous 提供的答案更好 - 附加到 SAS 中的数据集然后重新导出。
- 使用 DDE 执行更新。优点:非常容易更新数据。缺点:几乎不再支持,并且需要 excel 到 运行 在与 SAS 相同的 PC 上。
- 使用与 Excel (
connect to excel
) 的连接。优势:连接让您可以就地执行 SQL 语句,包括插入。缺点:必须符合合理的SAS数据结构,不能格式化,不能随意插入。 (h/t Roger DeAngelis @ SAS-L 指出了这一点)
- 使用 Microsoft 的 SAS 插件 Excel。优势:让您可以更轻松地控制 Excel 中的内容,从而获得更强大的格式化选项。缺点:单独的产品必须获得许可,并且由 Excel 而不是 SAS 驱动(虽然 运行s SAS 代码在服务器上,在存储过程中)。
- 从 Excel 连接到 SAS 的 OLEDB 提供程序。与 3 类似,实际上,控制少一些,产品许可证不同(可能更便宜)。
- 导入您的数据,修改它,然后使用 REPLACE 重新导出。优点:在SAS中容易做到,在SAS中控制数据。缺点:必须符合 SAS 数据结构,必须再次写出所有行(因此可能很慢)。这大概是多余的建议。
我正在尝试更新(继续添加行)现有的 excel 文件(如果可能的话),但数据不断被替换或覆盖。我希望 Claims 选项卡在 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;
您需要 "replace" 选项:
dbms = excel replace;
假设您的 SAS 数据集是本地的并且您正在使用 Windows,您可以使用漂亮的 SAS 宏程序调用 exportToXL。只需 google 即可,它附带有关如何设置它的说明。一旦掌握了它,就像 123 一样简单。
唯一需要注意的是, 1. 您需要在您的PC 上安装PC SAS 才能使用该程序。 2. 版本很旧,开发人员没有更新以处理新的 Excel 工作簿文件格式,即它使用 .xls 而不是 .xlsx。也就是说,如果您擅长 SAS 编程,您可以像我一样修改程序来处理 .xlsx。
HTH, 大堂
有几种方法可以做到这一点。 None 其中客观上比 Superfluous 提供的答案更好 - 附加到 SAS 中的数据集然后重新导出。
- 使用 DDE 执行更新。优点:非常容易更新数据。缺点:几乎不再支持,并且需要 excel 到 运行 在与 SAS 相同的 PC 上。
- 使用与 Excel (
connect to excel
) 的连接。优势:连接让您可以就地执行 SQL 语句,包括插入。缺点:必须符合合理的SAS数据结构,不能格式化,不能随意插入。 (h/t Roger DeAngelis @ SAS-L 指出了这一点) - 使用 Microsoft 的 SAS 插件 Excel。优势:让您可以更轻松地控制 Excel 中的内容,从而获得更强大的格式化选项。缺点:单独的产品必须获得许可,并且由 Excel 而不是 SAS 驱动(虽然 运行s SAS 代码在服务器上,在存储过程中)。
- 从 Excel 连接到 SAS 的 OLEDB 提供程序。与 3 类似,实际上,控制少一些,产品许可证不同(可能更便宜)。
- 导入您的数据,修改它,然后使用 REPLACE 重新导出。优点:在SAS中容易做到,在SAS中控制数据。缺点:必须符合 SAS 数据结构,必须再次写出所有行(因此可能很慢)。这大概是多余的建议。