excel - Matlab:默认打开文件 'outside Matlab'

标签 excel matlab

我正在寻找一种方法,让我的 Matlab 文件夹中的 Excel 文件在“Matlab 外部”(即在大多数情况下通过 MS Excel)直接双击文件,而不是右键单击并选择“打开”在 Matlab 之外”。

Matlab 中内置的 .xls 文件阅读器对于大文件来说可能非常慢,并且在不希望的情况下双击文件可能会花费相当长的时间,导致 Matlab 无响应。

谢谢。

最佳答案

当您在“当前文件夹”选项卡中单击某个内容时,它实际上正在运行 open 命令,该命令本身会调用 finfo 来确定给定“打开”的含义扩大。您可以通过在 [~, openAction] = finfo(fullpath); 行之后直接在 open.m 中创建断点并双击 - 当它到达断点时看到这一点您会看到它以 uiimport 的形式返回 openAction

理论上,您可以通过在路径上创建一个函数 openabc 来为扩展创建自定义方法,其中 abc 是扩展,应该作为 返回打开 Action

但是,如果我查看我的 finfo.m,它会首先搜索所述函数,然后无论是否找到它们(如果有内置方法)都会用标准行为覆盖它们。甚至还有评论:

% 此设置不允许用户覆盖默认的 EXTread 行为

如果你愿意在内置系统中乱搞,你可以这样做(先备份!- 这可能会影响其他事情)。我通过像这样隐藏现有的 finfo 来临时做到这一点:

编辑 finfo.m(现在保存一个副本到当前文件夹)

在定义 openAction 的循环之后添加这些行(在我的版本中,大约在第 85 行):

if any(strcmp(['.' ext], matlab.io.internal.xlsreadSupportedExtensions))
    openAction = 'winopen';
end

从包含您编辑的 finfo.m 的文件夹中,键入 which finfo -all。您应该看到两份副本,MATLAB 一份标记为阴影。从当前文件夹窗口打开某些内容现在应该从外部打开 Excel。

关于excel - Matlab:默认打开文件 'outside Matlab',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22067730/

相关文章:

arrays - Matlab 中的自定义排序数组

matlab - 在具有重复元素的有序向量中插入缺失的数字

vba - 删除多个工作表的更快方法

java - 如何将 HashMap 的键设置为 XML 文件中的标签?

Java代码可以在windows上运行,但不能在linux上运行

matlab - 绘制拉格朗日点

matlab - 如何在 MATLAB 中将数字连接到变量名?

vba - 尝试从 Excel VBA 保存 Word 文件,而不覆盖任何现有文件

Excel VBA 单元格中的换行符会减慢合并任务的执行速度

matlab - 在Matlab中使用递归算法获得更多详细错误消息吗?