2012-03-04 203 views
1

我有一個Excel表與用於股票圖表以下幾列:如何將Excel文件輸出讀入Fortran?

  1. 打開
  2. 關閉
  3. 日平均

如何使用Fortran僅從Excel文件中提取「日均值」?

我是Fortran的新手,除了下面的鏈接,還沒有找到任何可以幫助的東西,但是由於我在尋找不同於鏈接顯示給我的東西,所以我很難理解它:

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

+3

將excel中的數據保存爲csv文件(逗號或任何其他符號分隔)並用Fortran讀取 – Cheery 2012-03-04 02:53:35

回答

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

+3

在最新的Fortran規範中(可能在2003版本中),還有一個關於如何使用處理器的解釋, 要麼 。對於小數點分隔符,所以你建議的子程序可能是不必要的。我沒有規範,所以不能直接指向它。 – 2012-03-04 11:43:28

+0

@HighPerformanceMark - 你是對的!好決定。我以前聽說過它,但從來沒有用過它,所以通常不會去想它。 – Rook 2012-03-04 18:31:51

+0

讓我試試你給的代碼。 – AGilchrist 2012-03-04 21:00:51

0

你必須閱讀和分析Fortran中的Excel文件來得到你想要的值。如果你是新手,那麼這可能很難做到。也許更容易將Excel工作表保存爲CSV格式並解析它?祝你好運!

2

Excel文件的本地二進制格式將很難解析。如已經建議的那樣將文件導出爲文本或CSV。 CSV可能是最簡單的。你可能想使用「列表執導IO」,它具有源代碼形式:

read (unit-number, *) format-items 

Fortran的表式IO將讀取到列表中的變量「格式項」是一個非常靈活的方式。文件中的項目應該用空格或逗號等分隔符分隔。對於你的情況,有五個變量對應五列,以達到你想要的第五個。 Fortran是以記錄爲導向的,所以你可以每行讀一行。