飞白 发表于 2016-3-28 19:00:14

新人问个读取xlsx的傻问题。。。


program index74
parameter(imon=12,iyr=59,ivar=74)
dimension hc068(ivar,imon,iyr)
open(10,file="D:\hc068.xlsx",err=200)
read(10,100)(((hc068(i,j,k),i=1,ivar),j=1,imon),k=1,iyr)
100      format(37I5)
200      continue
close(10)
END
走到read就break了
貌似提示数据格式不对,新人真心搞不懂啊啊啊啊啊,数组不是不分的么。。。?
刚入坑的新人,真的就想改个格式看眼数据:'(
求高人解惑


vvt 发表于 2016-3-28 19:18:38

本帖最后由 vvt 于 2016-3-28 19:22 编辑

你不能直接读写 xls 文件,它的格式非常复杂。是 excel 专有的格式。
请另存为 csv 或 txt 文件后再尝试读取。此外,你的代码风格特别陈旧。我建议你换一个新的教科书,以下代码比你的简单简练,容易阅读
Program index74
Implicit None
Integer , parameter :: imon=12,iyr=59,ivar=74
Real :: hc068(ivar,imon,iyr)
Open(10 , File = "D:\hc068.xlsx" )
Read(10,*) hc068
close(10)
End Program index74

nmap 发表于 2016-3-29 17:15:06

赞 数组格式
学习了

pasuka 发表于 2016-3-30 08:54:31

首先,xls和xlsx是两个不同的文件格式标准,前者MS独家闭源,后者ISO开源
xlsx本质上是个压缩包文件,具体格式标准参考下面的网址,零基础的话,请不要指望三个月内可以吃透
http://officeopenxml.com/index.php
其次,读取xlsx开源项目很多,sf、github上面一把一把,但是唯独没有fortran的,必须得混合编程
个人意见:不追求跨平台,不考虑版权问题,基于MS office的VBA二次开发是唯一可行的捷径

楚香饭 发表于 2016-3-30 18:57:12

楼主应该也不是必须读xlsx的,读csv就可以了。
页: [1]
查看完整版本: 新人问个读取xlsx的傻问题。。。