Solved

Problems converting CSV data to HTML table

Posted on 2011-09-20
3
278 Views
Last Modified: 2012-05-12
I have a CSV file that is populated by an HTLM form.  I have been looking for some kind of script that I can use to import this comma delimited data into an HTML table.  I found a sample program on the Internet, but it has problems.  Can you tell me what is wrong with this code?  It reads the first line of the CSV data and creates the column headers.  It reads the second line and puts it into the table, but it puts the Email from the second line and the date from the third line under the Email column.  It puts the remainder of the third line under the wrong columns because it already used the date on the second row.  It only reads part of the third line of data.  This is the URL, if you want to look at the results.
http://ww2.nscc.edu/smith_judy/csvconverter.asp .  I have attached the CSV data file.

Thanks,
Judy
 formdata.csv
<title>CodeAve.com(CSV to HTML)</title>
<body bgcolor="#FFFFFF">
<%
csv_to_read="formdata.csv"
set fso = createobject("scripting.filesystemobject")
set act = fso.opentextfile(server.mappath(csv_to_read))

imported_text = act.readline
'Read the first line of the csv, typically these are colum headings

imported_text = replace(imported_text,chr(13),",")
'Change the line breaks to commas to delimit through-out

imported_text = replace(imported_text,chr(34),"")
'Remove al quotes (If your csv has quotes other than to seperate text
'You may want to remove this modifier to the imported text

split_text=split(imported_text,",")
'Split the top line by comma

num_imported=ubound(split_text)+1
'Count the number of splits and add one for the last element

total_imported_text = act.readall
'Read the rest of the csv

total_imported_text = replace(total_imported_text,chr(13),",")
'Change the line breaks to commas to delimit through-out

total_imported_text = replace(total_imported_text,chr(34),"")
'Remove al quotes (If your csv has quotes other than to seperate text
'You may want to remove this modifier to the imported text

total_split_text=split(total_imported_text,",")
'Split the file up by comma

total_num_imported=ubound(total_split_text)
'Count the number of splits 
'This will be the numer of cells in the table
%>
<table width="100%">
<tr>
<%
for table = 0 to num_imported -1
'This will create a table cell for each column in the csv
' (-1 is used because arrays begin with 0)
%>
<td width="<% response.write 100/(num_imported) 'make the cell widths even %>%">
<b><%= split_text(count) %></b>
</td>
<% 
count=count+1
next 
%>
</tr>
<tr>
<%
'Reset the counter
count=0
' This will determine how many rows are in the csv
for tablea = 0 to (total_num_imported/ (num_imported)-1)
%>
<%
for table = 0 to num_imported -1
'This will create a table cell for each column in the csv
' (-1 is used because arrays begin with 0)
%><td width="<%= 100/(num_imported) %>%">
<%= total_split_text(count) 
%>
</td>
<% 
count=count+1
next ' end of the observation 
%></tr>
<% next 'end of the csv %>
</table>

Open in new window

0
Comment
Question by:smith2001ja
  • 2
3 Comments
 
LVL 21

Expert Comment

by:Kim Walker
ID: 36567436
What is the source of your .csv file? Line 11 should be converting your line breaks to commas but doesn't appear to be doing so. Your file may have new lines chr(10) but no carriage returns chr(13). Try changing line 11 to replace new lines.

imported_text = replace(imported_text,chr(10),",")

Open in new window

0
 

Author Comment

by:smith2001ja
ID: 36568381
The source of my CSV file is the attached formdata.csv.  Formdata.csv is generated by an HTML web form.  I made the change you suggested and I am still getting the same results.  What next?
0
 
LVL 21

Accepted Solution

by:
Kim Walker earned 500 total points
ID: 36568473
I just noticed a redundancy. Line 11 is apparently for the header row only. Try doing the same thing to line 27.

I have confirmed that the lines end with a new line instead of a carriage return.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Animate a Title 7 37
Menu Inconsistent 3 21
while loop in html mail format 5 32
Bootstrap input box width 2 15
Use these top 10 tips to master the art of email signature design. Create an email signature design that will easily wow recipients, promote your brand and highlight your professionalism.
Is your Office 365 signature not working the way you want it to? Are signature updates taking up too much of your time? Let's run through the most common problems that an IT administrator can encounter when dealing with Office 365 email signatures.
In this tutorial viewers will learn how add a scalable full-width header using CSS3. Create a new HTML document with an internal stylesheet. Set a tiled background.:  Create a new div and name it Header. Position it with position:absolute at the top…
In this tutorial viewers will learn how to position overlapping items using z-index in CSS. They will also learn the restrictions on the z-index property.  Create a new HTML document with an internal stylesheet.: Create a div in CSS and name it Red.…

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now