[javascript] 필터링된 데이터를 다른 포맷으로 내보내는 방법 (CSV, Excel 등)

JavaScript를 사용하여 웹 애플리케이션을 개발할 때, 종종 필터링된 데이터를 CSV 또는 Excel 형식으로 다운로드할 수 있는 기능이 필요합니다. 이 글에서는 JavaScript를 이용하여 데이터를 필터링하고, 필터링된 데이터를 CSV나 Excel 포맷으로 내보내는 방법에 대해 알아보겠습니다.

데이터 필터링

먼저, 웹 애플리케이션에서 표시되는 데이터를 필터링해야 합니다. 이를 위해서는 JavaScript 배열의 내장 함수들을 사용하여 데이터를 필터링하고 정리합니다. 예를 들어, 배열의 filter 메서드를 사용하여 원하는 조건에 맞는 데이터만을 추려낼 수 있습니다.

const originalData = [
  { id: 1, name: 'John', age: 25 },
  { id: 2, name: 'Alice', age: 30 },
  { id: 3, name: 'Bob', age: 22 }
];

const filteredData = originalData.filter(item => item.age > 25);

위의 예제에서는 age가 25보다 큰 데이터만을 필터링하여 filteredData에 저장하게 됩니다.

CSV 파일로 내보내기

필터링된 데이터를 CSV 파일로 내보내기 위해서는 필터링된 데이터를 적절한 형식으로 변환하여 CSV 포맷으로 저장해야 합니다. 이를 위해서는 자체적으로 CSV 파일을 생성하는 방법이 있지만, papaparsecsv-writer와 같은 JavaScript 라이브러리를 사용할 수도 있습니다.

const { createObjectCsvWriter } = require('csv-writer');

const csvWriter = createObjectCsvWriter({
  path: 'filteredData.csv',
  header: [
    { id: 'id', title: 'ID' },
    { id: 'name', title: 'Name' },
    { id: 'age', title: 'Age' }
  ]
});

csvWriter.writeRecords(filteredData)
  .then(() => console.log('The CSV file was written successfully'));

Excel 파일로 내보내기

CSV 파일 외에도 데이터를 Excel 파일로 내보내는 방법도 있습니다. JavaScript에서는 exceljs 라이브러리를 사용하여 Excel 파일을 생성할 수 있습니다.

const ExcelJS = require('exceljs');

const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Filtered Data');

worksheet.columns = [
  { header: 'ID', key: 'id', width: 10 },
  { header: 'Name', key: 'name', width: 20 },
  { header: 'Age', key: 'age', width: 10 }
];

worksheet.addRows(filteredData);

workbook.xlsx.writeFile('filteredData.xlsx')
  .then(() => {
    console.log('The Excel file was written successfully');
  });

결론

JavaScript를 사용하여 데이터를 필터링하고 CSV 또는 Excel 파일로 내보내는 방법에 대해 알아보았습니다. 이러한 기능은 웹 애플리케이션에서 데이터를 보다 효과적으로 공유하고 활용할 수 있도록 도와줍니다. 필터링된 데이터를 내보내는 능력은 데이터 분석 및 보고에 있어서 매우 유용하며, 관련 작업을 훨씬 쉽게 만들어줄 수 있습니다.

참고 자료