แปลง Excel เป็น CSV และ CSV เป็น Excel โดยใช้ C++

Excel เป็นรูปแบบยอดนิยมสำหรับการแบ่งปันข้อมูล คุณอาจพบว่าตัวเองอยู่ในสถานการณ์ที่คุณมีข้อมูลในไฟล์ Excel(XLS หรือ XLSX) ที่คุณต้องนำเข้าไปยังฐานข้อมูล ในการทำเช่นนี้ คุณจะต้องแปลงไฟล์ Excel เป็นรูปแบบ CSV ในทางกลับกัน คุณอาจมีข้อมูลในรูปแบบ CSV ที่ส่งออกจากฐานข้อมูลที่คุณต้องจัดการเพิ่มเติมในไฟล์ Excel ในกรณีดังกล่าว คุณจะต้องแปลงไฟล์ CSV เป็นรูปแบบ Excel ในบทความนี้ คุณจะได้เรียนรู้วิธีดำเนินการแปลงทั้งสองนี้ทางโปรแกรมโดยใช้ C++

C ++ API เพื่อแปลงไฟล์ Excel เป็น CSV และไฟล์ CSV เป็นรูปแบบ Excel

Aspose.Cells for C++ เป็นไลบรารี่ C++ ดั้งเดิมที่ให้คุณสร้าง อ่าน และแก้ไขไฟล์ Excel นอกจากนี้ API ยังรองรับการแปลงไฟล์ Excel เป็นรูปแบบ CSV และในทางกลับกัน คุณสามารถติดตั้ง API ผ่าน NuGet หรือดาวน์โหลดโดยตรงจากส่วน ดาวน์โหลด

PM> Install-Package Aspose.Cells.Cpp

การแปลงไฟล์ Excel เป็นรูปแบบ CSV โดยใช้ C++

การแปลงไฟล์ Excel เป็นรูปแบบ CSV เป็นเรื่องง่ายด้วย Aspose.Cells for C++ API ต่อไปนี้เป็นขั้นตอนในการแปลงไฟล์ Excel เป็นรูปแบบ CSV โดยใช้ C++

ต่อไปนี้คือโค้ดตัวอย่างในการแปลงไฟล์ Excel เป็นรูปแบบ CSV

// เส้นทางไดเร็กทอรีต้นทาง
StringPtr srcDir = new String("SourceDirectory\\");

// เส้นทางไดเร็กทอรีเอาต์พุต
StringPtr outDir = new String("OutputDirectory\\");

// โหลดไฟล์ Excel อินพุต
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// บันทึกไฟล์ CSV เอาต์พุต
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);

แปลงแผ่นงาน Excel เป็นไฟล์ CSV

ตัวอย่างก่อนหน้านี้แปลงเฉพาะเวิร์กชีตแรก ถ้าไฟล์ Excel มีหลายเวิร์กชีต ในกรณีที่คุณต้องการแปลงแผ่นงานหลายแผ่นเป็นรูปแบบ CSV คุณสามารถทำตามขั้นตอนต่อไปนี้

  • โหลดไฟล์ Excel โดยใช้คลาส IWorkbook
  • ดึงแผ่นงานโดยใช้เมธอด IWorkbook->GetIWorksheets()
  • วนซ้ำแผ่นงานที่ได้รับ
  • ภายในลูป คุณสามารถระบุตรรกะที่กำหนดเองของคุณเพื่อแปลงแผ่นงานเฉพาะเป็นไฟล์ CSV ในการสาธิตนี้ แผ่นงานทั้งหมดจะถูกแปลงเป็นไฟล์ CSV
  • ดึงแผ่นงานที่จะแปลงโดยใช้เมธอด IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32)
  • สร้างอินสแตนซ์ของคลาส IWorkbook เพื่อแสดงไฟล์ CSV ใหม่
  • คัดลอกเวิร์กชีตที่ดึงมาก่อนหน้านี้ไปยังอินสแตนซ์สมุดงานใหม่โดยใช้ [IWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy (intrusiveptrAspose::Cells::IWorksheet sourceSheet) 12 เมธอด
  • บันทึกสมุดงานใหม่เป็น CSV โดยใช้ IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat) เมธอด

ต่อไปนี้คือโค้ดตัวอย่างในการแปลงแผ่นงาน Excel เป็นไฟล์ CSV โดยใช้ C++

// เส้นทางไดเร็กทอรีต้นทาง
StringPtr srcDir = new String("SourceDirectory\\");

// เส้นทางไดเร็กทอรีเอาต์พุต
StringPtr outDir = new String("OutputDirectory\\");

// โหลดไฟล์ Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// ดึงแผ่นงานของสมุดงาน
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// สร้างวัตถุตัวสร้างสตริงสำหรับการต่อสตริง
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();

for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
	// ดึงแผ่นงานเพื่อคัดลอก
	intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);

	// สร้างอินสแตนซ์ของคลาส IWorkbook เพื่อแสดงสมุดงานใหม่
	intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();

	// คัดลอกเวิร์กชีตที่ดึงมาก่อนหน้านี้ไปยังเวิร์กบุ๊กใหม่
	newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

	// ล้างตัวสร้างสตริงและสร้างเส้นทางเอาต์พุตด้วยการต่อสตริง
	stringBuilder->Clear();
	stringBuilder->Append(outDir);
	stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
	stringBuilder->Append(sheet);
	stringBuilder->Append((StringPtr)new String("_out.csv"));

	// บันทึกไฟล์ CSV เอาต์พุต
	newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}

การแปลงไฟล์ CSV เป็นรูปแบบ Excel โดยใช้ C++

ต่อไปนี้เป็นขั้นตอนในการแปลงไฟล์ CSV เป็นรูปแบบ Excel โดยใช้ C++

  • สร้างอินสแตนซ์ของคลาส ILoadOptions
  • สร้างวัตถุของคลาส IWorkbook โดยใช้อินสแตนซ์ ILoadOptions ที่สร้างขึ้นก่อนหน้านี้
  • บันทึกไฟล์ในรูปแบบ Excel โดยใช้ IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat) เมธอด

ต่อไปนี้คือโค้ดตัวอย่างในการแปลงไฟล์ CSV เป็นรูปแบบ Excel โดยใช้ C++

// เส้นทางไดเร็กทอรีต้นทาง
StringPtr srcDir = new String("SourceDirectory\\");

// เส้นทางไดเร็กทอรีเอาต์พุต
StringPtr outDir = new String("OutputDirectory\\");

// สร้างวัตถุ CSV LoadOptions
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);

// โหลดไฟล์ Excel อินพุต
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);

// บันทึกไฟล์ CSV เอาต์พุต
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_Xlsx);

รับใบอนุญาตฟรี

คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีแปลงไฟล์ Excel เป็นรูปแบบ CSV และไฟล์ CSV เป็นรูปแบบ Excel (XLS/XLSX) โดยใช้ C++ Aspose.Cells for C++ เป็น API ขนาดใหญ่ที่มีคุณลักษณะเพิ่มเติมมากมายสำหรับการทำงานกับไฟล์ Excel คุณสามารถสำรวจ API โดยละเอียดได้โดยใช้ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี

ดูสิ่งนี้ด้วย