使用脚本将数据表导出到 Excel您好,我正在尝试学习如何使用脚本和一些自动化功能将数据表导出到 Excel。
我正在使用 save("") 打开“JMP 文件另存为”窗口,提示我保存文件。 我希望将“保存类型”设置为 *.xls 而不是 *.jmp,这样我就不必每次都更改它。 我还想设置它选择用于保存文件的默认文件夹。 这些可以在 scipting 命令中完成吗? 我是新用户,正在寻找一个简单的解决方案。 感谢您的任何提示! 〜香农
回复:使用脚本将数据表导出到 Excel太棒了! 但是如何询问用户是否替换现有文件呢?
回复:使用脚本将数据表导出到 Excel你好,
我遇到了许多 excel 文件的问题,这些文件是很久以前创建的,包含大量数据,我假设这些文件是早期版本创建的。 2007 年或 2003 年。 奇怪的是,该文件在 95% 的机器上不起作用,它会因添加或删除列而崩溃,并出现错误 1000 和 Execel.exe。
我尝试了两种方法,效果很好,但这不是我需要的解决方案。 这些文件包含 freezpan,当我解冻时工作正常或将工作表复制到新工作表,然后即使启用了 freezpan,它也工作正常。
如何在数百个文件中解决此问题? 我被这个问题困扰了。
谢谢Adv。
问候
费萨尔
回复:使用脚本将数据表导出到 Excel像这样的东西会去掉 .jmp 扩展名并附加 .xlsx。 如果您已在过滤器中选择了 .xlsx 文件,它将不执行任何操作并覆盖该文件。 请注意,JMP 擅长保存 XLSX,但确实不太擅长保存 XLS。
dt = 当前数据表();
filepath = pickFile("选择要保存的文件", "c:\", {"Excel 文件|xlsx"}, 1, 1);
pos = 包含(文件路径,“.xlsx”);
if (pos == 0, filepath = Left(filepath, pos-1); filepath = filepath || ".xlsx");
dt << 另存为(文件路径,Excel 文件);
布赖恩·科科伦
JMP开发
回复:使用脚本将数据表导出到 Excel@香农K ,
是的,你是对的。 如果您选择一个已经存在的文件,则包含扩展名。 但是,如果它是新文件,则必须包含扩展名。
@Craige_Hales也许可以进一步发表评论?
回复:使用脚本将数据表导出到 Excel感谢您的帮助。 我包含了您建议的保存代码,但出现错误:“无法保存文件。 未知数据目标。”
我一直在尝试解决该错误,但没有成功。 当我检查 SaveFilePath 的输出时,它看起来像这样:“/C:/Users/jmp/name”。 我对这个问题的最佳猜测是保存功能没有将“.xlsx”添加到文件名中。
(我使用的是 Windows,但“/C: ...”似乎不是问题。)
我是否正确识别了错误? 关于如何解决这个问题有什么想法吗?
谢谢你!
香农
回复:使用脚本将数据表导出到 Excel你好@香农K ,
因此,“选择文件”对话框仅负责保护您想要的路径和文件名。 所以在你的例子中:
比方说:
path = "$DOCUMENTS" // this is shorthand for your "My Documents" folder<BR />
filtereddata = sorteddt << Subset(
(Selected Rows),
Columns(:YEARX, :PSU, :CASEID, :RATWGT, :VEHNO, :OCCNO, :DVTOTAL, :ROLLOVER, :GAD1, :PDOF1, :DOF1, :BODYTYPE, :AGE, :ROLE, :SEATPOS),
Output Table Name(filename)
);
SaveFilePath = Pick File(
"Save Filtered Data",
path,
{"Excel Files|xlsx;xls", "JMP Datatables|jmp", "Text Files|txt;csv;dat", "All Files|*"},
1,
saveFlag = 1
);
选择文件夹并为文件选择名称后,变量保存文件路径将以字符串形式包含此信息。
然后您将执行以下操作:
SaveFilePath );filtereddata << Save(
回复:使用脚本将数据表导出到 Excel这太棒了,谢谢。
但我仍然有 1 个问题。 我如何告诉它我正在保存哪个文件? 我正在输入文件名将其另存为,但我的文件夹中没有显示任何内容。 我想知道是不是因为没有什么可保存的?
我正在创建一个数据表,然后运行您建议的 SafeFileWindow 代码。 如果我错过了一些简单的事情,我深表歉意。 我是新来的! (此外,由于某种原因,保存文件窗口出现在数据表出现之前。 换句话说,运行此代码后,保存文件窗口不是活动窗口。)
感谢您的帮助。
这是我的代码的一部分:
过滤数据=sorteddt<<子集(
(选定的行),
列(:YEARX、:PSU、:CASEID、:RATWGT、:VEHNO、:OCCNO、:DVTOTAL、:ROLLOVER、:GAD1、:PDOF1、:DOF1、:BODYTYPE、:AGE、:ROLE、:SEATPOS)、
输出表名(文件名)
);
保存文件窗口 = 选择文件(
“保存过滤后的数据”,
小路,
{"Excel 文件|xlsx;xls"、"JMP 数据表|jmp"、"文本文件|txt;csv;dat"、"所有文件|*"},
1、
保存标志 = 1
);
回复:使用脚本将数据表导出到 Excel@香农K
试试这个,将“<默认文件夹路径>”替换为您希望最初显示的文件夹路径::
SaveFileWindow = Pick File(
"Save File",
"<DEFAULT folder="" path="">",
{"Excel Files|xlsx;xls", "JMP Datatables|jmp", "Text Files|txt;csv;dat", "All Files|*"},
1,
saveFlag = 1
);
</DEFAULT>
您可以在以下位置阅读有关“选择文件”功能的更多信息: http://www.jmp.com/support/help/13/Select_a_Directory_or_File.shtml