我正在尝试运行简单的代码
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解决了它,或者找到了另一个解决方案,但没有在线程上报告。
答案 0 :(得分:2)
我会将此作为评论,但我没有足够的声誉
检查(来自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
中使用此文件}