如何从Excel文件中读取输出到Fortran?

时间:2012-03-04 02:48:41

标签: excel fortran

我有一张excel表,其中包含以下列的股票图表:

  1. 打开
  2. 关闭
  3. 日平均值
  4. 如何使用Fortran仅从excel文件中提取“日均值”?

    我是Fortran的新手并且除了下面的链接之外找不到任何有用的东西但是我很难掌握,因为我正在寻找与链接显示的内容不同的东西:

    http://en.wikibooks.org/wiki/Fortran/Fortran_simple_input_and_output

3 个答案:

答案 0 :(得分:8)

不,与其他答案相反,CSV不是最容易阅读的文件。转到文件/另存为/其他格式并将其另存为格式化文本(以空格分隔)。根据您的语言环境,您将使用逗号或句号作为小数点,因此您必须(使用外部编辑器进行简单的搜索/替换)或编写逐个字符的fortran子例程,并用句号替换每个逗号。

之后很简单,没有;来解析,所以你只是

program FreeFormat

real(4), dimension(5) :: open, high, low, close, dayaverage
real(4) :: average

open(unit=1, file='filename.prn', status='old')
do i=1,5
    read(1,*)open(i), high(i), low(i), close(i), dayaverage(i)
enddo
average = sum(dayaverage)/5
write(*,'("Average is",f5.2)')average

end program FreeFormat

你明白了......


以下是一些入门链接(Excel / Fortran DLL相关)...

Trouble with file location in excel/fortran dll connection
Fortran DLL & MS Excel

答案 1 :(得分:2)

Excel文件的原生二进制格式很难解析。如已建议,将文件导出为文本或CSV。 CSV可能是最简单的。您可能希望使用“list directed IO”,其源代码形式为:

read (unit-number, *) format-items

Fortran列表导向的IO将读入列表中的变量“format-items”是一种非常灵活的方式。文件中的项目应由分隔符(如空格或逗号)分隔。对于您的情况,有五个变量对应于五列,以达到您想要的第五个。 Fortran是面向记录的,所以你每行读一次。

答案 2 :(得分:0)

您必须阅读并解析Fortran中的Excel文件才能获得所需的值。如果您不熟悉该语言,那么这可能很难。也许以CSV格式保存Excel工作表并解析它更容易?祝你好运!