Back to Top

Create & Download Excel, HTML, and Text files using JavaScript.

Updated 3 years ago

In this blog, we will look at how to generate and download excel, html, and text files.

1. Create & Download a excel(.xlsx) file using javascript.

Prepare your data in an array.

// Some dummy data for user details.
let data = [
    [ 'Id', 'FirstName', 'LastName', 'Mobile', 'Address' ], // This is your header.
    [ 1, 'Richard', 'Roe', '9874563210', 'Address' ],
    [ 2, 'Joe', 'Doakes', '7896541230', 'Address' ],
    [ 3, 'John', 'Smith', '8745632109', 'Address' ],
    [ 4, 'Joe', 'Sixpack', '9875647890', 'Address' ],
    [ 5, 'Richard', 'Thomson', '8632547890', 'Address' ]
];

Prepare data for excel.

let excelData = '';

// Prepare data for excel.You can also use html tag for create table for excel.
data.forEach(( rowItem, rowIndex ) => {   
    
    if (0 === rowIndex) {
        // This is for header.
	rowItem.forEach((colItem, colIndex) => {
	     excelData += colItem + ',';
	});
	excelData += "\r\n";

     } else {
        // This is data.
        rowItem.forEach((colItem, colIndex) => {
	   excelData += colItem + ',';   
	})
       excelData += "\r\n";       
     }
});

We have completed the preparing data. Now move towards creating a blob URL and download file.

// Create the blob url for the file. 
excelData = "data:text/xlsx," + encodeURI(excelData);

// Download the xlsx file.
let a = document.createElement("A");
a.setAttribute("href", excelData);
a.setAttribute("download", "filename.xlsx");
document.body.appendChild(a);
a.click();

2. Create & Download a html(.html) file using javascript.

Prepare data for HTML.

// I am creating table but you can create any design as per your need.

let htmlData = `<table align="center" border="1">`;
    
data.forEach(( rowItem, rowIndex ) => {
   if (0 === rowIndex) {
       htmlData += `<tr>`;
       rowItem.forEach(( colItem, colIndex ) => {
          htmlData += `<th>${colItem}</th>`;
       });
       htmlData += `</tr>`;
   } else {
       htmlData += `<tr>`;
       rowItem.forEach(( colItem, colIndex ) => {
            htmlData += `<td>${colItem}</td>`;
       });
       htmlData += `</tr>`;
    }
});

We have completed the preparing data for HTML. Now move towards creating a blob URL and download file.

// Create the blob url for the file.
htmlData = "data:text/html," + encodeURI(htmlData);

// Download the html file.
let a = document.createElement("A");
a.setAttribute("href", htmlData);
a.setAttribute("download", "filename.html");
document.body.appendChild(a);
a.click();

3. Create & Download a text(.txt) file using javascript.

let text = 'You text goes here';

// Create the blob url for the file.
text = "data:text/plain," + encodeURI(text);

// Download the txt file.
let a = document.createElement("A");
a.setAttribute("href", text);
a.setAttribute("download", "filename.txt");
document.body.appendChild(a);
a.click();

Thanks for reading this article you can play with code and generate other files like CSV.

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


4 comments

  • Peter Kalmström
    • Vikas Kumar (Moderator)
  • James
    • Vikas Kumar (Moderator)
  • Back to Top

    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home