Tạo và download file CSV từ data object trong JavaScript

Bài toán đặt ra nếu bạn có 1 object data như dưới đây

const data = [
  { name: 'Tom', id: '1234'},
  { name: 'James', id: '3456'},
  { name: 'Jerry', id: '7890'},
  { name: 'Peter', id: '4321'}
  ];

và bạn muốn tạo 1 file .csv đơn giản, download về bằng JavaScript ngay trên trình duyệt của mình. Đoạn code dưới đây sẽ giúp bạn thực hiện điều đó:

  const headers = Object.keys(data[0]).join();
  const content = data.map(value => Object.values(value).join());
  const csv = [headers].concat(content).join("\n");
  const element = document.createElement('a');
  
  element.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);
  element.target = '_blank';
  element.download = 'export.csv';
  element.click();

Khi chạy nó sẽ tự động thực hiện việc tạo ra 1 file .csv (định dạng mở bằng Excel) và download chúng về trên trình duyệt. Nội dung file csv sẽ như dưới đây:

Bình luận

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *