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