STATUS ÜBERPRÜFEN
I AM LISTENING TO
|

Importing CSV files with HTML5 and Papa Parse!

5. Februar 2021
.SHARE

Table of Contents

PAPA PARSE

Papa Parse is a powerful, in-browser CSV parser for the big boys and girls :)
If you do need easy CSV parsing and conversion back to CSV, take a look at it!

// Parse CSV string
var data = Papa.parse(csv);

// Convert back to CSV
var csv = Papa.unparse(data);

// Parse local CSV file
Papa.parse(file, {
	complete: function(results) {
		console.log("Finished:", results.data);
	}
});

// Stream big file in worker thread
Papa.parse(bigFile, {
	worker: true,
	step: function(results) {
		console.log("Row:", results.data);
	}
});

SIMPLE TESTDRIVE

 <input type="file" name="File Upload" id="txtFileUpload" accept=".csv" />
document.getElementById('txtFileUpload').addEventListener('change', upload, false);

 function upload(evt) {
  
	var data = null;
	var file = evt.target.files[0];
	var reader = new FileReader();
	reader.readAsText(file);
	reader.onload = function(event) {
		var csvData = event.target.result;
		
		 var data = Papa.parse(csvData, {header : true});
		
		console.log(data);
		
	};
	reader.onerror = function() {
		alert('Unable to read ' + file.fileName);
	};

}

ABOUT

Papa Parse is the fastest in-browser CSV (or delimited text) parser for JavaScript. It is reliable and correct according to RFC 4180, and it comes with these features:

  • Easy to use
  • Parse CSV files directly (local or over the network)
  • Fast mode
  • Stream large files (even via HTTP)
  • Reverse parsing (converts JSON to CSV)
  • Auto-detect delimiter
  • Worker threads to keep your web page reactive
  • Header row support
  • Pause, resume, abort
  • Can convert numbers and booleans to their types
  • Optional jQuery integration to get files from <input type="file"> elements
  • One of the only parsers that correctly handles line-breaks and quotations

USAGE

I am currently using it to quickly parse Adobe Audition CSV marker files and prepare them for storage for my podcast.

Name	Start	Duration	Time Format	Type	Description
Ankündigungen	0:20.432	0:00.000	decimal	Cue	
Stargate Table Read	1:12.811	0:00.000	decimal	Cue	
Dune Part One 2021	1:58.677	0:00.000	decimal	Cue	
Dust - Cosmo	2:20.925	0:00.000	decimal	Cue	
Nina - Beyond Memory	2:51.276	0:00.000	decimal	Cue	
Papa.unparse(tabData, {	
	delimiter: "\tab",
	header: true,
	newline: "\r\n",
	skipEmptyLines: true
})

Papa Parse @ GitHUB

Let’s Talk!

Looking for a reliable partner to bring your project to the next level? Whether it’s development, design, security, or ongoing support—I’d love to chat and see how I can help.

Get in touch,
and let’s create something amazing together!

RELATED POSTS

If you have ever embedded an audio player on a podcast site, a music portfolio, or a media archive, you have probably noticed that pretty rendered waveform behind the playhead. Libraries like Wavesurfer.js and Peaks.js can draw those visuals on the client, but decoding a 60-minute MP3 in the browser is slow, memory-hungry, and unreliable […]

Here’s a question that’s been bouncing around dev Slacks and SEO Twitter for the past year: should you bother serving Markdown to AI agents and crawlers? Is it actually worth the effort, or is it just another shiny standard that’ll quietly die like so many before it? Short answer? Yeah, it’s worth doing. The longer […]

Managing multiple social media accounts is exhausting. Between juggling different platforms, scheduling posts at optimal times, and keeping up with analytics, it’s easy to feel overwhelmed. Commercial tools like Buffer and Hootsuite work well but come with hefty subscription fees and feature limitations. Enter Postiz – an open-source, self-hosted social media scheduling platform that puts […]

Alexander

I am a full-stack developer. My expertise include:

  • Server, Network and Hosting Environments
  • Data Modeling / Import / Export
  • Business Logic
  • API Layer / Action layer / MVC
  • User Interfaces
  • User Experience
  • Understand what the customer and the business needs


I have a deep passion for programming, design, and server architecture—each of these fuels my creativity, and I wouldn’t feel complete without them.

With a broad range of interests, I’m always exploring new technologies and expanding my knowledge wherever needed. The tech world evolves rapidly, and I love staying ahead by embracing the latest innovations.

Beyond technology, I value peace and surround myself with like-minded individuals.

I firmly believe in the principle: Help others, and help will find its way back to you when you need it.