Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
76
rated 0 times [  79] [ 3]  / answers: 1 / hits: 41812  / 10 Years ago, wed, february 26, 2014, 12:00:00

There are plenty of examples of reading a CSV file using jQuery however javascript examples are few and far between.



As i am using an internal script editor for a particular application, i am limited to using Javascript only.



I have a csv file that has headings followed by data in each row.



Heading1,Heading2,Heading3,Heading4
row1data1,row1data2,row1data3,row1data4
row2data1,row2data2,row2data3,row2data4


The delimiter being used is , however there could be others e.g. ^.



As i can't upload a file, i have the option to manually reference an absolute path.



Is there a way i can use only javascript to read a csv file?


More From » javascript

 Answers
48

As a start, here is a couple of ways to read a file with javascript



HttpRequest: (from web server or absolute path)



Source: Javascript - read local text file



function readTextFile(file)
{
var rawFile = new XMLHttpRequest();
rawFile.open(GET, file, true);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
alert(allText);
}
}
}
rawFile.send(null);
}


And specify file:// in your filename when using an absolute path



readTextFile(file:///C:/your/path/to/file.txt);


FileReader API:



Source:

- http://codepen.io/matt-west/pen/KjEHg

- http://blog.teamtreehouse.com/reading-files-using-the-html5-filereader-api



HTML



<div id=page-wrapper>

<h1>Text File Reader</h1>
<div>
Select a text file:
<input type=file id=fileInput>
</div>
<pre id=fileDisplayArea><pre>

</div>


JS



window.onload = function() {
var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');

fileInput.addEventListener('change', function(e) {
var file = fileInput.files[0];
var textType = /text.*/;

if (file.type.match(textType)) {
var reader = new FileReader();

reader.onload = function(e) {
fileDisplayArea.innerText = reader.result;
}

reader.readAsText(file);
} else {
fileDisplayArea.innerText = File not supported!
}
});
}


JS on MS Windows (simple sample)



Source: http://msdn.microsoft.com/en-us/library/czxefwt8(v=vs.84).aspx



function ReadFiles()
{
var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject(Scripting.FileSystemObject);
ts = fso.OpenTextFile(c:\testfile.txt, ForReading);
s = ts.ReadLine();
// s holds the text content
ts.Close();
}

[#72307] Monday, February 24, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
marisela

Total Points: 103
Total Questions: 105
Total Answers: 102

Location: Solomon Islands
Member since Fri, Oct 8, 2021
3 Years ago
;