'Save As' question

Discussion in 'ASP General' started by Aliza Klein, Oct 26, 2003.

  1. Aliza Klein

    Aliza Klein Guest

    I am new to ASP so please pardon me if this is crazy.

    I have data that I want to allow the user to be able to save in a format
    that will then enable the user to open the data in Excel. (I have already
    read the previous CSV posts and still have a question.)

    I have an ASP page that takes some data from a previous page,adds some
    column headings and displays it all in apparent CSV format.

    All I am trying to do is allow the users to do a Save As (for a text or CSV
    file) and open it (in Excel) with the proper columns. Somehow, although all
    appears OK on the screen, when saving the file, line feeds seem to be added
    and all the rows get messed up. If I simply select all the text on the ASP
    page and copy it to WordPad, save it, and open it in Excel - all works fine.
    Obviously there is some formatting I am overlooking.

    Any suggestions would be helpful! (The page can be viewed at
    http://primefreight.ca/database1_interface/Results/track_company.asp and
    search on TEST COMPANY as the company, press Track and then the Export
    button.)

    I am baffled and feel I am so close... but getting frustrated.
    Thanks for any input!
    Aliza


    --
    -----------------------------------
    Aliza Klein

    -----------------------------------
     
    Aliza Klein, Oct 26, 2003
    #1
    1. Advertising

  2. Aliza Klein

    Bob Barrows Guest

    Aliza Klein wrote:
    > I am new to ASP so please pardon me if this is crazy.
    >
    > I have data that I want to allow the user to be able to save in a
    > format that will then enable the user to open the data in Excel. (I
    > have already read the previous CSV posts and still have a question.)
    >
    > I have an ASP page that takes some data from a previous page,adds some
    > column headings and displays it all in apparent CSV format.
    >
    > All I am trying to do is allow the users to do a Save As (for a text
    > or CSV file) and open it (in Excel) with the proper columns.
    > Somehow, although all appears OK on the screen, when saving the file,
    > line feeds seem to be added and all the rows get messed up. If I
    > simply select all the text on the ASP page and copy it to WordPad,
    > save it, and open it in Excel - all works fine. Obviously there is
    > some formatting I am overlooking.
    >
    > Any suggestions would be helpful! (The page can be viewed at
    > http://primefreight.ca/database1_interface/Results/track_company.asp
    > and search on TEST COMPANY as the company, press Track and then the
    > Export button.)
    >

    While the code used to generate these results would be helpful, I do notice
    that the header of the exported page contains this:
    content="text/plain"
    You would probably be better off setting the content type to
    "application/vnd.ms-excel":
    Response.ContentType = "application/vnd.ms-excel"

    Bob Barrows


    --
    Microsoft MVP - ASP/ASP.NET
    Please reply to the newsgroup. This email account is my spam trap so I
    don't check it very often. If you must reply off-line, then remove the
    "NO SPAM"
     
    Bob Barrows, Oct 26, 2003
    #2
    1. Advertising

  3. Aliza Klein

    Aliza Klein Guest

    Thanks for the tip. I didn't know I could do that. Unfortunately, the
    problem still remains. The code follows (as does the explanation):

    <%
    tmp = ""
    response.contenttype = "application/vnd.ms-excel"
    response.write "Container #,Vessel Name,Company Name,House Bill of Lading
    #,Shipper,Country,Cargo Control #,ETD Origin,ETA (Halifax/Vancouver),ETA
    (Montreal),Revised ETA,Current Location of Cargo,Delivery Status,Customs
    Clearance Status,OBL Required,Number of Cartons,Weight (kg),Cubic Meters
    (CBM),PO #,PO # (2),Comments #1,Comments #2,Comments #3,Comments #4,Comments
    #5,Reference #" & "<BR>"
    For each item in Request.form
    For icount = 1 to Request.Form(Item).Count
    if Item = "export_stuff" then
    tmp = tmp & Request.form(item)(icount)
    tmp = ConvertString(tmp)
    response.write "'" & tmp & "'" & vbCrLF
    end if
    next

    next

    %>

    <% function ConvertString(strMy)
    dim strRetVal
    strRetVal = strMy
    strRetVal = replace(strRetVal, "!!!","','", 1, -1, 1)
    ConvertString = strRetVal
    end function
    %>

    Explanation: Basically, I write a comma delimited string to the screen and
    then a string (that I first convert - long story) that containes all the
    text that I want that is passed from the previous page. The reason I did it
    this way is that I often return more than one record and when I did it field
    by field, the data was grouped together (ie: both record's data under 1
    field). I hope this makes sense to you.

    And thanks!
    Aliza


    "Bob Barrows" <> wrote in message
    news:%239cGAs%...
    > Aliza Klein wrote:
    > > I am new to ASP so please pardon me if this is crazy.
    > >
    > > I have data that I want to allow the user to be able to save in a
    > > format that will then enable the user to open the data in Excel. (I
    > > have already read the previous CSV posts and still have a question.)
    > >
    > > I have an ASP page that takes some data from a previous page,adds some
    > > column headings and displays it all in apparent CSV format.
    > >
    > > All I am trying to do is allow the users to do a Save As (for a text
    > > or CSV file) and open it (in Excel) with the proper columns.
    > > Somehow, although all appears OK on the screen, when saving the file,
    > > line feeds seem to be added and all the rows get messed up. If I
    > > simply select all the text on the ASP page and copy it to WordPad,
    > > save it, and open it in Excel - all works fine. Obviously there is
    > > some formatting I am overlooking.
    > >
    > > Any suggestions would be helpful! (The page can be viewed at
    > > http://primefreight.ca/database1_interface/Results/track_company.asp
    > > and search on TEST COMPANY as the company, press Track and then the
    > > Export button.)
    > >

    > While the code used to generate these results would be helpful, I do

    notice
    > that the header of the exported page contains this:
    > content="text/plain"
    > You would probably be better off setting the content type to
    > "application/vnd.ms-excel":
    > Response.ContentType = "application/vnd.ms-excel"
    >
    > Bob Barrows
    >
    >
    > --
    > Microsoft MVP - ASP/ASP.NET
    > Please reply to the newsgroup. This email account is my spam trap so I
    > don't check it very often. If you must reply off-line, then remove the
    > "NO SPAM"
    >
    >
     
    Aliza Klein, Oct 26, 2003
    #3
  4. Aliza Klein

    Bob Barrows Guest

    Aliza Klein wrote:
    > Thanks for the tip. I didn't know I could do that. Unfortunately,
    > the problem still remains. The code follows (as does the
    > explanation):
    >
    > <%
    > tmp = ""
    > response.contenttype = "application/vnd.ms-excel"
    > response.write "Container #,Vessel Name,Company Name,House Bill of
    > Lading #,Shipper,Country,Cargo Control #,ETD Origin,ETA
    > (Halifax/Vancouver),ETA (Montreal),Revised ETA,Current Location of
    > Cargo,Delivery Status,Customs Clearance Status,OBL Required,Number of
    > Cartons,Weight (kg),Cubic Meters (CBM),PO #,PO # (2),Comments
    > #1,Comments #2,Comments #3,Comments #4,Comments #5,Reference #" &
    > "<BR>"
    > For each item in Request.form
    > For icount = 1 to Request.Form(Item).Count
    > if Item = "export_stuff" then
    > tmp = tmp & Request.form(item)(icount)
    > tmp = ConvertString(tmp)
    > response.write "'" & tmp & "'" & vbCrLF
    > end if
    > next
    >
    > next
    >
    > %>
    >
    > <% function ConvertString(strMy)
    > dim strRetVal
    > strRetVal = strMy
    > strRetVal = replace(strRetVal, "!!!","','", 1, -1, 1)
    > ConvertString = strRetVal
    > end function
    > %>
    >
    > Explanation: Basically, I write a comma delimited string to the
    > screen and then a string (that I first convert - long story) that
    > containes all the text that I want that is passed from the previous
    > page. The reason I did it this way is that I often return more than
    > one record and when I did it field by field, the data was grouped
    > together (ie: both record's data under 1 field). I hope this makes
    > sense to you.
    >
    > And thanks!
    > Aliza


    You need to but the data into a table. This works for me:

    <%
    Response.Buffer=true
    Response.ContentType = "application/vnd.ms-excel"
    tmp = "Container #,Vessel Name,Company Name," & _
    "House Bill of Lading#,Shipper,Country,Cargo Control #," & _
    "ETD Origin,ETA (Halifax/Vancouver),ETA(Montreal),Revised ETA," & _
    "Current Location of Cargo,Delivery Status," & _
    "Customs Clearance Status,OBL Required,Number of Cartons," & _
    "Weight (kg),Cubic Meters(CBM),PO #,PO # (2),Comments #1," & _
    "Comments #2,Comments #3,Comments #4,Comments #5,Reference #"
    Response.Write "<table><tr><td>"
    response.write replace(tmp,",","</td><td>")
    Response.Write "</td></tr></table>"
    %>

    HTH,
    Bob Barrows

    --
    Microsoft MVP - ASP/ASP.NET
    Please reply to the newsgroup. This email account is my spam trap so I
    don't check it very often. If you must reply off-line, then remove the
    "NO SPAM"
     
    Bob Barrows, Oct 26, 2003
    #4
  5. Aliza Klein

    Aliza Klein Guest

    Thanks so much! That set me on the right path!

    I am up and running....

    Aliza

    "Bob Barrows" <> wrote in message
    news:...
    > Aliza Klein wrote:
    > > Thanks for the tip. I didn't know I could do that. Unfortunately,
    > > the problem still remains. The code follows (as does the
    > > explanation):
    > >
    > > <%
    > > tmp = ""
    > > response.contenttype = "application/vnd.ms-excel"
    > > response.write "Container #,Vessel Name,Company Name,House Bill of
    > > Lading #,Shipper,Country,Cargo Control #,ETD Origin,ETA
    > > (Halifax/Vancouver),ETA (Montreal),Revised ETA,Current Location of
    > > Cargo,Delivery Status,Customs Clearance Status,OBL Required,Number of
    > > Cartons,Weight (kg),Cubic Meters (CBM),PO #,PO # (2),Comments
    > > #1,Comments #2,Comments #3,Comments #4,Comments #5,Reference #" &
    > > "<BR>"
    > > For each item in Request.form
    > > For icount = 1 to Request.Form(Item).Count
    > > if Item = "export_stuff" then
    > > tmp = tmp & Request.form(item)(icount)
    > > tmp = ConvertString(tmp)
    > > response.write "'" & tmp & "'" & vbCrLF
    > > end if
    > > next
    > >
    > > next
    > >
    > > %>
    > >
    > > <% function ConvertString(strMy)
    > > dim strRetVal
    > > strRetVal = strMy
    > > strRetVal = replace(strRetVal, "!!!","','", 1, -1, 1)
    > > ConvertString = strRetVal
    > > end function
    > > %>
    > >
    > > Explanation: Basically, I write a comma delimited string to the
    > > screen and then a string (that I first convert - long story) that
    > > containes all the text that I want that is passed from the previous
    > > page. The reason I did it this way is that I often return more than
    > > one record and when I did it field by field, the data was grouped
    > > together (ie: both record's data under 1 field). I hope this makes
    > > sense to you.
    > >
    > > And thanks!
    > > Aliza

    >
    > You need to but the data into a table. This works for me:
    >
    > <%
    > Response.Buffer=true
    > Response.ContentType = "application/vnd.ms-excel"
    > tmp = "Container #,Vessel Name,Company Name," & _
    > "House Bill of Lading#,Shipper,Country,Cargo Control #," & _
    > "ETD Origin,ETA (Halifax/Vancouver),ETA(Montreal),Revised ETA," & _
    > "Current Location of Cargo,Delivery Status," & _
    > "Customs Clearance Status,OBL Required,Number of Cartons," & _
    > "Weight (kg),Cubic Meters(CBM),PO #,PO # (2),Comments #1," & _
    > "Comments #2,Comments #3,Comments #4,Comments #5,Reference #"
    > Response.Write "<table><tr><td>"
    > response.write replace(tmp,",","</td><td>")
    > Response.Write "</td></tr></table>"
    > %>
    >
    > HTH,
    > Bob Barrows
    >
    > --
    > Microsoft MVP - ASP/ASP.NET
    > Please reply to the newsgroup. This email account is my spam trap so I
    > don't check it very often. If you must reply off-line, then remove the
    > "NO SPAM"
    >
    >
     
    Aliza Klein, Oct 26, 2003
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. user
    Replies:
    1
    Views:
    765
    Bruce Barker
    Apr 4, 2005
  2. teo
    Replies:
    1
    Views:
    465
  3. BusyBoy
    Replies:
    2
    Views:
    604
    =?Utf-8?B?TGVvbiBNYXluZQ==?=
    Oct 31, 2006
  4. subhadip
    Replies:
    0
    Views:
    639
    subhadip
    Mar 28, 2007
  5. hell2heaven
    Replies:
    0
    Views:
    416
    hell2heaven
    Oct 26, 2008
Loading...

Share This Page