Chuyển đổi dữ liệu CSV sang các tệp TXT thuần túy là một nhu cầu thường gặp khi xây dựng các pipeline dữ liệu, công cụ báo cáo, hoặc các bộ xuất log đơn giản. Aspose.Cells Cloud SDK for Node.js cung cấp một thư viện mạnh mẽ giúp thực hiện việc chuyển đổi định dạng trên máy chủ. Trong hướng dẫn này, bạn sẽ học cách thực hiện chuyển đổi CSV sang TXT trong Node.JS từng bước, khám phá cách tiếp cận REST dựa trên cURL, điều chỉnh các tùy chọn mã hóa, và áp dụng các thực tiễn tốt nhất về hiệu năng.

Yêu cầu chuyển đổi CSV sang TXT

Các nhà phát triển thường cần chuyển dữ liệu CSV dạng bảng tính thành các tệp TXT thô cho các hệ thống hạ nguồn yêu cầu văn bản phân tách theo dòng mà không có dấu phẩy. Các yêu cầu điển hình bao gồm:

  • Xử lý khối lượng lớn - khả năng xử lý các tệp lớn mà không cần tải toàn bộ nội dung vào bộ nhớ.
  • Mã hóa ký tự tùy chỉnh - nhiều hệ thống kế thừa yêu cầu UTF‑8, ISO-8859-1, hoặc các mã hóa cụ thể khác.
  • Tự động hoá - quá trình chuyển đổi phải có thể gọi được từ backend Node.JS mà không cần can thiệp thủ công.

Sử dụng các script hệ thống tệp chung có thể nhanh chóng trở nên dễ gây lỗi, đặc biệt khi làm việc với các mã hóa khác nhau hoặc khi ứng dụng chạy trong môi trường đám mây nơi quyền truy cập tệp cục bộ bị hạn chế.

Lựa chọn Aspose.Cells Cloud SDK for Node.js cho công việc

Aspose.Cells Cloud SDK for Node.js cung cấp một API dựa trên REST chạy trên đám mây, loại bỏ nhu cầu cài đặt Office cục bộ. Các khả năng chính phù hợp với yêu cầu là:

  • Hỗ trợ streaming - các tệp được tải lên và tải xuống dưới dạng luồng, giảm lượng bộ nhớ sử dụng.
  • Kiểm soát mã hoá - lớp TxtSaveOptions cho phép bạn chỉ định bất kỳ bộ mã văn bản nào được hỗ trợ.
  • Thiết kế sẵn sàng cho lô - bạn có thể gọi chuyển đổi trong vòng lặp hoặc quy trình làm việc bất đồng bộ.

SDK tích hợp liền mạch với các dịch vụ Aspose khác, và tài liệu toàn diện cùng tham chiếu API cung cấp hướng dẫn chi tiết cho mọi phương pháp được sử dụng trong hướng dẫn này.

CSV to TXT trong Node.JS: Triển khai

Dưới đây là một hướng dẫn ngắn gọn về toàn bộ quá trình. Mỗi bước bao gồm một đoạn mã ngắn được lấy trực tiếp từ ví dụ đầy đủ ở phần sau của bài viết.

Cài đặt SDK và cấu hình thông tin xác thực

Đầu tiên, thêm thư viện vào dự án của bạn và thiết lập client API với ID client và secret của bạn.

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);

Tải lên tệp CSV lên Lưu trữ Đám mây

Đọc tệp CSV cục bộ và tải lên lưu trữ 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);

Xác định tùy chọn lưu TXT với mã hóa tùy chỉnh

Tạo một đối tượng TxtSaveOptions để chỉ định mã hóa UTF‑8 (hoặc bất kỳ mã nào khác bạn cần).

const txtSaveOptions = new model.TxtSaveOptions({
    encoding: 'utf-8'          // custom encoding
});
<!--[CODE_SNIPPET_END]-->

### Chuyển đổi Workbook từ CSV sang TXT
Gọi yêu cầu chuyển đổi, truyền tên CSV từ xa và các tùy chọn 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]-->

### Tải xuống kết quả TXT và dọn dẹp tệp từ xa
Ghi nội dung TXT đã chuyển đổi vào tệp cục bộ và tùy chọn xóa tệp CSV nguồn khỏi lưu trữ đám mây.

```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);

Ví dụ mã đầy đủ: CSV sang TXT trong Node.JS sử dụng Aspose.Cells

Mã sau đây minh họa toàn bộ quy trình từ đầu đến cuối.

const { CellsApi, ApiClient, model } = require('asposecellscloud');
const fs = require('fs');
const path = require('path');

(async () => { // ==== Configuration ==== 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);

// ==== Đường dẫn tệp ==== const localCsvPath = path.resolve(__dirname, ‘sample.csv’); // CSV đầu vào const remoteCsvPath = ‘sample.csv’; // đường dẫn trong lưu trữ Aspose Cloud const localTxtPath = path.resolve(__dirname, ‘sample.txt’); // TXT đầu ra

// ==== Upload CSV to cloud storage ====
const csvData = fs.readFileSync(localCsvPath);
const uploadRequest = new model.UploadFileRequest({
    path: remoteCsvPath,
    file: csvData
});
await cellsApi.uploadFile(uploadRequest);

// ==== Chuẩn bị tùy chọn lưu TXT với mã hóa tùy chỉnh ==== const txtSaveOptions = new model.TxtSaveOptions({ encoding: ‘utf-8’ // mã hóa tùy chỉnh });

// ==== Convert CSV to TXT ==== const convertRequest = new model.ConvertWorkbookRequest({ name: remoteCsvPath, format: ’txt’, outPath: ‘’, options: txtSaveOptions }); const convertResponse = await cellsApi.convertWorkbook(convertRequest);

// ==== Lưu tệp TXT đã chuyển đổi cục bộ ==== fs.writeFileSync(localTxtPath, convertResponse.body);

// ==== Xóa tệp tin từ xa (tùy chọn) ====
    const deleteRequest = new model.DeleteFileRequest({ path: remoteCsvPath });
    await cellsApi.deleteFile(deleteRequest);
console.log('CSV successfully converted to TXT at:', localTxtPath);
})();

Lưu ý: Ví dụ mã này chỉ ra chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội ngũ hỗ trợ để được trợ giúp.

Chuyển đổi CSV sang TXT bằng cURL và REST API

Nếu bạn muốn sử dụng phương pháp REST thuần túy, cùng một quá trình chuyển đổi có thể được thực hiện bằng các lệnh cURL.

1. Xác thực và Lấy Token Truy cập

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. Tải lên CSV nguồn

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. Thực hiện chuyển đổi

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. Tải xuống TXT đầu ra (đã được lưu bằng cờ -o)

Các lệnh này minh họa cùng một quy trình mà không cần viết bất kỳ mã Node.JS nào. Để biết thêm chi tiết, xem tài liệu API chính thức.

Tùy chọn chuyển đổi: Cài đặt xuất CSV sang TXT

SDK cung cấp một số thuộc tính mà bạn có thể điều chỉnh để tinh chỉnh đầu ra.

  • Encoding – Xác định bộ ký tự của tệp TXT. Ví dụ trên sử dụng 'utf-8'.
  • OutPath – Nếu bạn muốn kết quả được lưu trực tiếp trong lưu trữ đám mây, đặt đường dẫn như 'output/sample.txt'.
  • SaveFormat – Mặc dù định dạng yêu cầu là 'txt', bạn cũng có thể yêu cầu 'txt' với các dấu phân cách khác thông qua các tùy chọn bổ sung (không được đề cập ở đây).

Dưới đây là đoạn mã thay đổi vị trí lưu đầu ra:

const convertRequest = new model.ConvertWorkbookRequest({
    name: remoteCsvPath,
    format: 'txt',
    outPath: 'output/result.txt',   // store in cloud storage
    options: txtSaveOptions
});

Để xem danh sách đầy đủ các thuộc tính có thể cấu hình, hãy tham khảo lớp TxtSaveOptions class.

Kết luận

Chuyển đổi CSV sang TXT trong Node.JS trở nên đơn giản khi bạn sử dụng Aspose.Cells Cloud SDK for Node.js. Thư viện xử lý việc truyền luồng tệp, mã hóa tùy chỉnh và tương tác lưu trữ đám mây, cho phép bạn tập trung vào logic nghiệp vụ thay vì phân tích cấp độ thấp. Hãy nhớ đảm bảo có giấy phép phù hợp cho môi trường sản xuất; giấy phép trả phí mở khóa không giới hạn số lần chuyển đổi, trong khi giấy phép tạm thời có sẵn để thử nghiệm tại trang giấy phép tạm thời. Với mã và các ví dụ cURL được cung cấp, bạn có thể tích hợp xuất CSV sang TXT vào bất kỳ dịch vụ Node.JS nào một cách nhanh chóng và đáng tin cậy.

Câu hỏi thường gặp

Làm thế nào để xử lý mã hóa tùy chỉnh khi chuyển đổi CSV sang TXT trong Node.JS?
Sử dụng đối tượng TxtSaveOptions để đặt thuộc tính encoding (ví dụ: 'utf-8' hoặc 'iso-8859-1'). Điều này đảm bảo tệp TXT được tạo ra phù hợp với mong đợi của hệ thống đích.

Tôi có thể xử lý nhiều tệp CSV trong một lần chạy không?
Có. Đặt logic chuyển đổi bên trong một vòng lặp, tải lên từng CSV, gọi convertWorkbook, và tải xuống tệp TXT kết quả. Thiết kế không trạng thái của SDK giúp việc xử lý hàng loạt trở nên đơn giản.

Những cân nhắc về hiệu năng khi làm việc với các tệp CSV lớn là gì?
Hãy truyền luồng việc tải lên và tải xuống tệp thay vì tải toàn bộ tệp vào bộ nhớ. Các endpoint REST của SDK hoạt động với luồng, giảm việc sử dụng RAM và cải thiện khả năng mở rộng.

Có cần giấy phép cho việc chuyển đổi CSV sang TXT trong môi trường sản xuất không?
Cần một giấy phép trả phí cho các triển khai trong môi trường sản xuất. Bạn có thể nhận giấy phép tạm thời để đánh giá từ trang giấy phép tạm thời.

Read More