xlsopen在Windows 10 Octave 4.0.3中不起作用

时间:2016-10-20 22:18:36

标签: windows octave

我正在尝试运行简单的代码

f = xlsopen('Libro1.xlsx');

在Windows 10中使用octave 4.0.3,java版本8更新111 1.8.0_111-b14

从目前为止我发现的有:     已经卸载它,并再次安装,
    确保路径中没有非ASCII字符,
    安装了最新的java版本(不是很重要吗?据说octave windows安装程序为你安装了一个版本)
    加载了两个窗口和io pkgs
    io版本2.4.3和Windows版本1.2.4
    我仍然收到这个错误:

  

警告:fopen:' C:/ Users / tommy / Documents / Octave \ Libro1.xlsx'通过搜索加载路径找到   警告:来自       xlsopen在第241行第7列       xlsread在第197行第11列       prueba4在第2行第3列   检测到的XLS接口:COM *;警告:找不到Java支持(没有Java JRE?没有安装和加载Java pkg?)

     

警告:尝试打开或创建文件C:\ Users \ tommy \ Libro1.xlsx时出现ActiveX错误   警告: COM_spsh_open :返回值列表中的某些元素未定义   文件Libro1.xlsx无法解压缩。它是正确的文件格式吗?   警告: OCT_spsh_open :返回值列表中的某些元素未定义   没有。   警告:xlsopen.m:没有' .xlsx'具有可用接口的电子表格I / O支持。   警告:xlsread:返回值列表中的某些元素未定义   d =

已经看过各种线程,即使是一个具有完全相同的消息,但是,安装java解决了它,或者找到了另一个解决方案,但没有在线程上报告。

2 个答案:

答案 0 :(得分:2)

我会将此作为评论,但我没有足够的声誉

Octave java-enabled

检查(来自Octave控制台)的输出以确定您是否具有支持Java的Octave安装

octave_config_info ("features").JAVA

它应该返回ans = 1

检查JAVA_HOME

并检查您的JAVA_HOME环境变量

getenv('JAVA_HOME')

这应该是您的JRE的路径(例如ans = C:\Program Files\Java\jre1.8.0_91

兼容的架构

Octave的构建是否与JRE相同?

从命令行运行

java -version

如果它说'64位'在任何地方,它是64位,否则它是32位。

来自Octave终端

octave_config_info('CC')
ans = x86_64-w64-mingw32-gcc

表示Octave它是为64位编译的。

新的Octave会话还会显示unofficial file list上找到的64位版本的信息Octave was configured for "x86_64-w64-mingw32"我没有安装32位,所以我可以& #39; t确认如果它是32位,该消息是什么。

答案 1 :(得分:2)

首先:我只在探测几个接口时看到你的帖子中的警告(没有错误),我猜xlsopen自动使用OCT接口,f之后有效。有几个接口可以使用io包读取xlsx。见here。我会建议没有依赖关系的OCT接口。如果您真的想要一个基于Java的界面来安装JRE或JDK,请安装带有Java支持的Octave。

编辑:现在我看到您的文件Libro1.xlsx并未位于您的工作目录中,看起来您已使用addpath添加Libro1.xlsx所在的文件夹因此"警告:fopen:' C:/ Users / tommy / Documents / Octave \ Libro1.xlsx'通过搜索加载路径"找到。

但是" addpath"没有想过为fopen添加目录。 cd到您的Libro1.xlsx所在的目录(以便在执行ls时看到它列出)或使用fullfile创建完整文件名并在xlsopen中使用此文件}