CSV 데이터를 일반 TXT 파일로 변환하는 것은 데이터 파이프라인, 보고 도구 또는 간단한 로그 내보내기를 구축할 때 자주 필요한 작업입니다. Aspose.Cells Cloud SDK for Node.js는 서버 측에서 형식 변환의 복잡한 작업을 처리하는 강력한 라이브러리를 제공합니다. 이 가이드에서는 Node.JS에서 CSV를 TXT로 변환하는 방법을 단계별로 배우고, cURL 기반 REST 접근 방식을 탐색하며, 인코딩 옵션을 조정하고, 성능 모범 사례를 적용하는 방법을 다룹니다.
CSV를 TXT로 변환 요구 사항
개발자는 종종 스프레드시트 형식의 CSV 데이터를 쉼표 없이 줄 구분 텍스트를 기대하는 다운스트림 시스템을 위해 원시 TXT 파일로 변환해야 합니다. 일반적인 요구 사항은 다음과 같습니다:
- 고용량 처리 - 전체 내용을 메모리에 로드하지 않고도 대용량 파일을 처리할 수 있는 능력.
- 사용자 정의 문자 인코딩 - 많은 레거시 시스템이 UTF‑8, ISO‑8859‑1 또는 기타 특정 인코딩을 요구합니다.
- 자동화 - 변환은 수동 개입 없이 Node.JS 백엔드에서 호출 가능해야 합니다.
일반 파일‑시스템 스크립트를 사용하면 특히 다양한 인코딩을 다루거나 애플리케이션이 로컬 파일 접근이 제한된 클라우드 환경에서 실행될 때 오류가 발생하기 쉽습니다.
작업에 적합한 Aspose.Cells Cloud SDK for Node.js 선택
Aspose.Cells Cloud SDK for Node.js는 클라우드에서 실행되는 REST 기반 API를 제공하여 로컬 Office 설치가 필요하지 않습니다. 요구 사항에 부합하는 주요 기능은 다음과 같습니다:
- 스트리밍 지원 - 파일이 스트림으로 업로드 및 다운로드되어 메모리 사용량을 줄입니다.
- 인코딩 제어 - TxtSaveOptions 클래스는 지원되는 모든 텍스트 인코딩을 지정할 수 있게 합니다.
- 배치‑ready 설계 - 루프나 비동기 워크플로에서 변환을 호출할 수 있습니다.
SDK는 다른 Aspose 서비스와 원활하게 통합되며, 포괄적인 문서 및 API 참조는 이 튜토리얼에서 사용된 모든 메서드에 대한 자세한 안내를 제공합니다.
CSV를 TXT로 변환하는 Node.JS 구현
아래는 전체 프로세스를 간결하게 안내한 내용입니다. 각 단계에는 기사 뒷부분에 있는 전체 예제에서 직접 가져온 짧은 코드 발췌가 포함되어 있습니다.
SDK 설치 및 자격 증명 구성
먼저, 라이브러리를 프로젝트에 추가하고 클라이언트 ID와 비밀 키를 사용하여 API 클라이언트를 설정합니다.
npm install asposecellscloud
const { CellsApi, ApiClient, model } = require('asposecellscloud');
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new ApiClient.Configuration({
clientId,
clientSecret,
basePath: 'https://api.aspose.cloud'
});
const cellsApi = new CellsApi(config);
CSV 파일을 클라우드 스토리지에 업로드
로컬 CSV 파일을 읽어 Aspose Cloud 스토리지에 업로드합니다.
const [fs](https://docs.fileformat.com/programming/fs/) = require('fs');
const path = require('path');
const localCsvPath = path.resolve(__dirname, ‘sample.csv’); const remoteCsvPath = ‘sample.csv’; const csvData = fs.readFileSync(localCsvPath);
const uploadRequest = new model.UploadFileRequest({
path: remoteCsvPath,
file: csvData
});
await cellsApi.uploadFile(uploadRequest);
사용자 지정 인코딩을 사용한 TXT 저장 옵션 정의
UTF‑8 인코딩(또는 필요에 따라 다른 인코딩)을 지정하기 위해 TxtSaveOptions 객체를 생성합니다.
const txtSaveOptions = new model.TxtSaveOptions({
encoding: 'utf-8' // custom encoding
});
<!--[CODE_SNIPPET_END]-->
### CSV에서 TXT로 워크북 변환
원격 CSV 이름과 TXT 옵션을 전달하여 변환 요청을 호출합니다.
<!--[CODE_SNIPPET_START]-->
```javascript
const convertRequest = new model.ConvertWorkbookRequest({
name: remoteCsvPath,
format: 'txt',
outPath: '',
options: txtSaveOptions
});
const convertResponse = await cellsApi.convertWorkbook(convertRequest);
<!--[CODE_SNIPPET_END]-->
### TXT 결과 다운로드 및 원격 파일 정리
변환된 TXT 내용을 로컬 파일에 저장하고, 필요에 따라 클라우드 스토리지에서 원본 CSV 파일을 삭제할 수 있습니다.
<!--[CODE_SNIPPET_START]-->
```javascript
const localTxtPath = path.resolve(__dirname, 'sample.txt');
fs.writeFileSync(localTxtPath, convertResponse.body);
const deleteRequest = new model.DeleteFileRequest({ path: remoteCsvPath });
await cellsApi.deleteFile(deleteRequest);
console.log('CSV successfully converted to TXT at:', localTxtPath);
Aspose.Cells를 사용한 Node.JS에서 CSV를 TXT로 변환하는 전체 코드 예제
다음 코드는 시작부터 끝까지 전체 워크플로를 보여줍니다.
const { CellsApi, ApiClient, model } = require('asposecellscloud');
const fs = require('fs');
const path = require('path');
(async () => { // ==== 구성 ==== const clientId = ‘YOUR_CLIENT_ID’; const clientSecret = ‘YOUR_CLIENT_SECRET’; const config = new ApiClient.Configuration({ clientId, clientSecret, basePath: ‘https://api.aspose.cloud’ }); const cellsApi = new CellsApi(config); })();
// ==== File paths ====
const localCsvPath = path.resolve(__dirname, 'sample.csv'); // input CSV
const remoteCsvPath = 'sample.csv'; // path in Aspose Cloud storage
const localTxtPath = path.resolve(__dirname, 'sample.txt'); // output TXT
// ==== Upload CSV to cloud storage ==== const csvData = fs.readFileSync(localCsvPath); const uploadRequest = new model.UploadFileRequest({ path: remoteCsvPath, file: csvData }); await cellsApi.uploadFile(uploadRequest);
// ==== 사용자 지정 인코딩으로 TXT 저장 옵션 준비 ==== const txtSaveOptions = new model.TxtSaveOptions({ encoding: ‘utf-8’ // 사용자 지정 인코딩 });
// ==== Convert CSV to TXT ==== const convertRequest = new model.ConvertWorkbookRequest({ name: remoteCsvPath, format: ’txt’, outPath: ‘’, options: txtSaveOptions }); const convertResponse = await cellsApi.convertWorkbook(convertRequest);
// ==== 변환된 TXT를 로컬에 저장 ==== fs.writeFileSync(localTxtPath, convertResponse.body);
// ==== Clean up remote file (optional) ====
const deleteRequest = new model.DeleteFileRequest({ path: remoteCsvPath });
await cellsApi.deleteFile(deleteRequest);
console.log('CSV successfully converted to TXT at:', localTxtPath);
})();
Note: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에 사용하기 전에 파일 경로와 구성 값을 실제 환경에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 뒤 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참고하거나 지원 팀에 문의하세요.
cURL 및 REST API를 사용한 CSV를 TXT로 변환
순수 REST 방식을 선호한다면 동일한 변환을 cURL 명령으로 수행할 수 있습니다.
1. 인증 및 액세스 토큰 가져오기
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
2. 원본 CSV 업로드
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/sample.csv" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: text/csv" \
--data-binary "@sample.csv"
3. 변환 실행
curl -X POST "https://api.aspose.cloud/v3.0/cells/sample.csv/convert?format=txt" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"TxtSaveOptions": {"Encoding": "utf-8"}}' \
-o sample.txt
4. 출력 TXT 다운로드 (-o 플래그로 이미 저장됨)
이 명령들은 Node.JS 코드를 작성하지 않고도 동일한 흐름을 보여줍니다. 자세한 내용은 공식 API 문서를 확인하세요.
변환 옵션: CSV를 TXT로 내보내기 설정
SDK는 출력 결과를 미세 조정할 수 있는 여러 속성을 제공합니다.
- Encoding – TXT 파일의 문자 집합을 결정합니다. 위 예제에서는
'utf-8'을 사용했습니다. - OutPath – 결과를 클라우드 스토리지에 직접 저장하려면
'output/sample.txt'와 같은 경로를 지정합니다. - SaveFormat – 요청 형식이
'txt'이지만, 추가 옵션을 통해 다른 구분자를 사용하는'txt'형식도 요청할 수 있습니다(여기서는 다루지 않음).
다음은 출력 위치를 변경하는 코드 스니펫입니다:
const convertRequest = new model.ConvertWorkbookRequest({
name: remoteCsvPath,
format: 'txt',
outPath: 'output/result.txt', // store in cloud storage
options: txtSaveOptions
});
구성 가능한 속성의 전체 목록은 TxtSaveOptions 클래스를 참조하십시오.
결론
Node.JS에서 CSV를 TXT로 변환하는 작업은 Aspose.Cells Cloud SDK for Node.js를 활용하면 간단해집니다. 이 라이브러리는 파일 스트리밍, 사용자 지정 인코딩 및 클라우드 스토리지 연동을 처리하므로 저수준 파싱보다 비즈니스 로직에 집중할 수 있습니다. 프로덕션 사용을 위해 적절한 라이선스를 확보하는 것을 잊지 마세요; 유료 라이선스는 무제한 변환을 가능하게 하고, 임시 라이선스는 임시 라이선스 페이지에서 테스트용으로 제공됩니다. 제공된 코드와 cURL 예제를 사용하면 CSV를 TXT로 내보내는 기능을 어떤 Node.JS 서비스에도 빠르고 안정적으로 통합할 수 있습니다.
FAQ
CSV를 TXT로 변환할 때 Node.JS에서 사용자 지정 인코딩을 어떻게 처리합니까?
TxtSaveOptions 객체를 사용하여 encoding 속성을 설정합니다(예: 'utf-8' 또는 'iso-8859-1'). 이렇게 하면 생성된 TXT가 대상 시스템의 기대와 일치합니다.
한 번에 여러 CSV 파일을 처리할 수 있나요?
예. 변환 로직을 루프 안에 배치하고 각 CSV를 업로드한 다음 convertWorkbook을 호출하고 결과 TXT를 다운로드하십시오. SDK의 무상태 설계 덕분에 배치 처리가 간단합니다.
대용량 CSV 파일에 대한 성능 고려 사항은 무엇인가요?
전체 파일을 메모리에 로드하는 대신 파일 업로드와 다운로드를 스트리밍하십시오. SDK의 REST 엔드포인트는 스트림을 사용하여 RAM 사용량을 줄이고 확장성을 향상시킵니다.
CSV를 TXT로 변환할 때 프로덕션에서 라이선스가 필요합니까?
프로덕션 배포에는 유료 라이선스가 필요합니다. 평가용 임시 라이선스는 임시 라이선스 페이지에서 얻을 수 있습니다.