Chuyển đổi Excel sang CSV và CSV sang Excel bằng C ++

Excel là một định dạng phổ biến để chia sẻ thông tin. Bạn có thể gặp phải tình huống mà bạn có dữ liệu trong tệp Excel (XLS hoặc XLSX) mà bạn cần nhập vào cơ sở dữ liệu. Đối với điều này, bạn sẽ cần phải chuyển đổi tệp Excel sang định dạng CSV. Mặt khác, bạn có thể có dữ liệu ở định dạng CSV được xuất từ cơ sở dữ liệu mà bạn cần thao tác thêm trong tệp Excel. Đối với những trường hợp như vậy, bạn cần chuyển đổi tệp CSV sang định dạng Excel. Trong bài viết này, bạn sẽ học cách thực hiện cả hai chuyển đổi này theo cách lập trình bằng C ++.

API C ++ để chuyển đổi tệp Excel sang tệp CSV và CSV sang định dạng Excel

Aspose.Cells cho C ++ là một thư viện C ++ gốc cho phép bạn tạo, đọc và sửa đổi các tệp Excel. Hơn nữa, API hỗ trợ chuyển đổi các tệp Excel sang định dạng CSV và ngược lại. Bạn có thể cài đặt API thông qua NuGet hoặc tải xuống trực tiếp từ phần Tải xuống.

PM> Install-Package Aspose.Cells.Cpp

Chuyển đổi tệp Excel sang định dạng CSV bằng C ++

Chuyển đổi tệp Excel sang định dạng CSV thật dễ dàng với Aspose.Cells for C ++ API. Sau đây là các bước để chuyển đổi tệp Excel sang định dạng CSV bằng C ++.

Sau đây là mã mẫu để chuyển đổi tệp Excel sang định dạng CSV.

// Đường dẫn thư mục nguồn.
StringPtr srcDir = new String("SourceDirectory\\");

// Đường dẫn thư mục đầu ra.
StringPtr outDir = new String("OutputDirectory\\");

// Tải tệp Excel đầu vào
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Lưu tệp CSV đầu ra
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);

Chuyển đổi Bảng tính Excel sang tệp CSV

Ví dụ trước chỉ chuyển đổi trang tính đầu tiên nếu tệp Excel chứa nhiều trang tính. Trong trường hợp bạn muốn chuyển đổi nhiều trang tính sang định dạng CSV, bạn có thể làm theo các bước sau.

Sau đây là mã mẫu để chuyển đổi trang tính Excel sang tệp CSV bằng C ++.

// Đường dẫn thư mục nguồn.
StringPtr srcDir = new String("SourceDirectory\\");

// Đường dẫn thư mục đầu ra.
StringPtr outDir = new String("OutputDirectory\\");

// Tải tệp Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Truy xuất các trang tính của sổ làm việc.
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Tạo đối tượng trình tạo chuỗi để nối chuỗi.
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();

for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
	// Truy xuất trang tính để sao chép
	intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);

	// Tạo một phiên bản của lớp IWorkbook để đại diện cho sổ làm việc mới
	intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();

	// Sao chép trang tính đã truy xuất trước đó vào sổ làm việc mới
	newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

	// Xóa trình tạo chuỗi và tạo đường dẫn đầu ra với các nối chuỗi.
	stringBuilder->Clear();
	stringBuilder->Append(outDir);
	stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
	stringBuilder->Append(sheet);
	stringBuilder->Append((StringPtr)new String("_out.csv"));

	// Lưu tệp CSV đầu ra
	newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}

Chuyển đổi tệp CSV sang định dạng Excel bằng C ++

Sau đây là các bước để chuyển đổi tệp CSV sang định dạng Excel bằng C ++.

Sau đây là mã mẫu để chuyển đổi tệp CSV sang định dạng Excel bằng C ++.

// Đường dẫn thư mục nguồn.
StringPtr srcDir = new String("SourceDirectory\\");

// Đường dẫn thư mục đầu ra.
StringPtr outDir = new String("OutputDirectory\\");

// Tạo đối tượng CSV LoadOptions
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);

// Tải tệp Excel đầu vào
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);

// Lưu tệp CSV đầu ra
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_Xlsx);

Nhận giấy phép miễn phí

Bạn có thể dùng thử API mà không có giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Sự kết luận

Trong bài viết này, bạn đã học cách chuyển đổi tệp Excel sang định dạng CSV và tệp CSV sang định dạng Excel (XLS / XLSX) bằng C ++. Aspose.Cells cho C ++ là một API rộng lớn cung cấp nhiều tính năng bổ sung để làm việc với các tệp Excel. Bạn có thể khám phá API chi tiết bằng cách sử dụng tài liệu chính thức. Trong trường hợp có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi trên diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm