'Save As' question

A

Aliza Klein

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
 
B

Bob Barrows

Aliza said:
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
 
A

Aliza Klein

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
 
B

Bob Barrows

Aliza said:
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
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top