Microsoft Excel cho phép chia văn bản thành nhiều cột bằng cách sử dụng các dấu phân cách như dấu cách trống, dấu phẩy hoặc các ký tự khác. Tính năng này có thể hữu ích trong các tình huống như chuyển đổi dữ liệu được phân tách bằng dấu phẩy được xuất từ bảng cơ sở dữ liệu sang dạng bảng. Để kết thúc, bài viết này sẽ hướng dẫn bạn cách chia văn bản thành các cột trong tệp Excel bằng C ++.
API C ++ để tách văn bản thành cột trong tệp Excel
Chúng tôi sẽ sử dụng API Aspose.Cells for C ++ để tách văn bản thành các cột trong tệp Excel. Đây 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 mà không yêu cầu cài đặt Microsoft Excel. 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
Chia văn bản thành các cột trong tệp Excel bằng C ++
Sau đây là các bước để tách văn bản thành các cột trong tệp Excel.
- Tạo một thể hiện của lớp IWorkbook.
- Truy cập trang tính mà bạn muốn tách văn bản bằng phương thức IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- Chèn dữ liệu mẫu vào trang tính.
- Tạo một phiên bản của lớp ITxtLoadOptions.
- Chỉ định ký tự sẽ được sử dụng để tách văn bản bằng phương thức ITxtLoadOptions-> SetSeparator (Aspose :: Cells :: Systems :: Char value).
- Chia văn bản thành các cột bằng cách sử dụng cột IWorksheet-> GetICells() -> TextToColumns (Aspose :: Cells :: Systems :: Int32, Aspose :: Cells :: Systems :: Int32, Aspose :: Cells :: Systems: : Int32 totalRows, intrusiveptrAspose::Cells::ITxtLoadOptions tùy chọn) phương pháp.
- Lưu tệp Excel bằng cách sử dụng IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String fileName) phương thức.
Mã mẫu sau đây trình bày cách chia văn bản thành các cột trong tệp 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\\");
// Đường dẫn của tệp excel đầu ra
StringPtr outputFile = outDir->StringAppend(new String("TextToColumns.xlsx"));
// Tạo một phiên bản của lớp IWorkbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Truy cập trang tính đầu tiên
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Thêm dữ liệu mẫu
intrusive_ptr<String> str = new String("John Teal");
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(str);
str = new String("Peter Graham");
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(str);
str = new String("Brady Cortez");
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(str);
str = new String("Mack Nick");
worksheet->GetICells()->GetObjectByIndex(new String("A4"))->PutValue(str);
str = new String("Hsu Lee");
worksheet->GetICells()->GetObjectByIndex(new String("A5"))->PutValue(str);
// Tạo một phiên bản của lớp ITxtLoadOptions
intrusive_ptr<ITxtLoadOptions> options = Factory::CreateITxtLoadOptions();
// Chỉ định dấu phân tách để phân tách văn bản
options->SetSeparator(' ');
// Tách văn bản thành các cột
worksheet->GetICells()->TextToColumns(0, 0, 5, options);
// Lưu tệp excel đầu ra
workbook->Save(outputFile);
Nhận giấy phép miễn phí
Để dùng thử API mà không có giới hạn đánh giá, bạn có thể 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 chia văn bản thành nhiều cột trong tệp Excel bằng C ++. Bạn đã thấy đoạn mã hoàn chỉnh cùng với các bước cần thiết để đạt được điều này. Aspose.Cells for C ++ là một API mạnh mẽ cung cấp nhiều tính năng bổ sung để tự động hóa các tác vụ liên quan đến Excel của bạn. Bạn có thể khám phá API chi tiết bằng cách truy cập 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.