Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Can Fortran read input data from Excel?

  1. Feb 9, 2013 #1
    I have prepared the coordinate of a pipe layout in excel.
    Now I have to input them into a FORTRAN code.
    Although I know it is possible to generate these coordinates inside FORTRAN, but working with Excel is much easier for me. Making these coordinate data inside FORTRAN is a very hard work and time consuming for me.

    I want to know is there a way to import or read the coordinates I have made in Excel, into Fortran?
  2. jcsd
  3. Feb 9, 2013 #2


    User Avatar
    Gold Member

    Output the excel as a CSV file and then you can definitely read it into FORTRAN
  4. Feb 10, 2013 #3
    Thanks. I will tr it.
  5. Feb 10, 2013 #4
    Dear Phinds
    Thanks for your reply.
    I didn't have enough lock to succeed.
    I want to read I,x, z from excel (file='z-dir coordinates.csv') and write them into file='Tpipe-coordinates.txt'
    I use following code:

    Dimension x(279),z(279)
    open (21, file='z-dir coordinates.csv')
    open (22, file='Tpipe-coordinates.txt')
    DO 1 j=1,279
    read (21,100) x(j),z(j)
    write (22,101) j,x,y,z(j)
    1 continue
    100 format(f15.7)
    101 format (I5,3f15.7)
    close (21)
    close (22)

    But it gives error. It stops at the first read command.
    What is wrong?
    I don't know how to define tab or next cell in FORTRAN format command?
    Last edited: Feb 11, 2013
  6. Feb 11, 2013 #5


    User Avatar
    Gold Member

    Did you actually save the excel file as a CSV? There ARE no "tabs" or "next cell" in a CSV file, just variables separated by commas.

    I don't know FORTRAN so can't help you with that, but you DO have to take the commas into account somehow.
  7. Feb 11, 2013 #6


    User Avatar
    Science Advisor
    Homework Helper

    Fortran will handle the commas (and tabs) automatically if you use "list format" input like

    read (21,*) x(j),z(j)

    There are some more bugs in your program, because you are eading x(j) and z(j), but then writing the whole of the x array (just "x", not "x(j)"), an uninitialized variable y, and then z(j). We can't guess what you want to write to the file, but that doesn't look very sensible.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook