Tabel pivot mengatur ulang data untuk merepresentasikannya dengan cara yang bermakna. Mereka memberikan opsi penyortiran yang berbeda dan memberikan jumlah, rata-rata, atau statistik lainnya dengan mengelompokkan data bersama. Ini adalah alat penting untuk analisis data dan merupakan bagian mendasar dari MS Excel. Anda mungkin menemukan diri Anda dalam skenario di mana Anda perlu membuat dan memanipulasi tabel pivot secara terprogram. Untuk itu, artikel ini akan mengajarkan Anda cara bekerja dengan tabel pivot di file Excel menggunakan C++.

C++ API untuk Bekerja dengan Tabel Pivot di File Excel

Aspose.Cells for C++ adalah pustaka C++ asli yang memungkinkan Anda membuat, membaca, dan memperbarui file Excel tanpa memerlukan penginstalan Microsoft Excel. API juga mendukung bekerja dengan tabel pivot di file Excel. Anda dapat menginstal API melalui NuGet atau mengunduhnya langsung dari bagian Unduhan.

PM> Install-Package Aspose.Cells.Cpp

Buat Tabel Pivot di File Excel menggunakan C++

Dalam contoh berikut, kita akan membuat file Excel baru, memasukkan data sampel ke dalamnya, dan membuat tabel pivot. File yang dihasilkan dalam contoh ini akan digunakan sebagai file sumber untuk contoh lainnya. Berikut langkah-langkah membuat tabel pivot pada file Excel.

Kode contoh berikut menunjukkan cara membuat tabel pivot di file Excel menggunakan C++.

// Jalur direktori sumber.
StringPtr srcDir = new String("SourceDirectory\\");

// Jalur direktori keluaran.
StringPtr outDir = new String("OutputDirectory\\");

// Buat instance dari kelas IWorkbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Akses lembar kerja pertama
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Tambahkan data sumber untuk tabel pivot
intrusive_ptr<String> str = new String("Fruit");
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(str);
str = new String("Quantity");
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(str);
str = new String("Price");
worksheet->GetICells()->GetObjectByIndex(new String("C1"))->PutValue(str);
str = new String("Apple");
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(str);
str = new String("Orange");
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(str);
str = new String("Mango");
worksheet->GetICells()->GetObjectByIndex(new String("A4"))->PutValue(str);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B4"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("C2"))->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(new String("C3"))->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(new String("C4"))->PutValue(4);

// Tambahkan tabel pivot
int idx = worksheet->GetIPivotTables()->Add(new String("A1:C4"), new String("E5"), new String("MyPivotTable"));

// Akses tabel pivot yang dibuat
intrusive_ptr<IPivotTable> pivotTable = worksheet->GetIPivotTables()->GetObjectByIndex(idx);

// Memanipulasi baris, kolom, dan bidang data tabel pivot
pivotTable->AddFieldToArea(PivotFieldType_Row, pivotTable->GetIBaseFields()->GetObjectByIndex(0));
pivotTable->AddFieldToArea(PivotFieldType_Data, pivotTable->GetIBaseFields()->GetObjectByIndex(1));
pivotTable->AddFieldToArea(PivotFieldType_Data, pivotTable->GetIBaseFields()->GetObjectByIndex(2));
pivotTable->AddFieldToArea(PivotFieldType_Column, pivotTable->GetIDataField());

// Atur gaya tabel pivot
pivotTable->SetPivotTableStyleType(PivotTableStyleType_PivotTableStyleMedium9);

// Simpan file excel keluaran
workbook->Save(outDir->StringAppend(new String("outputCreatePivotTable.xlsx")));
Gambar Tabel Pivot yang dibuat oleh kode sampel

Gambar Tabel Pivot yang dibuat oleh kode sampel

Sortir Tabel Pivot dalam File Excel menggunakan C++

Dalam contoh berikut, kami akan mengurutkan kolom pertama tabel pivot dalam urutan menurun. Berikut adalah langkah-langkah mengurutkan data dalam tabel pivot.

Kode contoh berikut menunjukkan cara mengurutkan tabel pivot di file Excel menggunakan C++.

// Jalur direktori sumber.
StringPtr srcDir = new String("SourceDirectory\\");

// Jalur direktori keluaran.
StringPtr outDir = new String("OutputDirectory\\");

// Jalur file excel masukan
StringPtr samplePivotTable = srcDir->StringAppend(new String("SamplePivotTable.xlsx"));

// Jalur file excel keluaran
StringPtr outputSortedPivotTable = outDir->StringAppend(new String("outputSortedPivotTable.xlsx"));

// Muat file excel sampel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(samplePivotTable);

// Akses lembar kerja pertama
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Akses tabel pivot
intrusive_ptr<IPivotTable> pivotTable = worksheet->GetIPivotTables()->GetObjectByIndex(0);

// Atur penyortiran tabel pivot
pivotTable->AddFieldToArea(PivotFieldType_Row, 0);
intrusive_ptr<IPivotField> pivotField = pivotTable->GetIRowFields()->GetObjectByIndex(0);
pivotField->SetAutoSort(true);
pivotField->SetAscendSort(false);

// Segarkan dan hitung data di tabel pivot.
pivotTable->RefreshData();
pivotTable->CalculateData();

// Simpan file excel keluaran
workbook->Save(outputSortedPivotTable);
Gambar Tabel Pivot terurut yang dibuat oleh kode sampel

Gambar Tabel Pivot terurut yang dibuat oleh kode sampel

Sembunyikan Baris di Tabel Pivot menggunakan C++

Dengan Aspose.Cells for C++ API, Anda juga dapat menyembunyikan baris dalam tabel pivot. Dalam contoh berikut, kita akan menyembunyikan baris dengan label baris “Oranye”. Berikut adalah langkah-langkah untuk menyembunyikan baris dalam tabel pivot.

Kode contoh berikut menunjukkan cara menyembunyikan baris dalam tabel pivot menggunakan C++.

// Jalur direktori sumber.
StringPtr srcDir = new String("SourceDirectory\\");

// Jalur direktori keluaran.
StringPtr outDir = new String("OutputDirectory\\");

// Jalur file excel masukan
StringPtr samplePivotTable = srcDir->StringAppend(new String("SamplePivotTable.xlsx"));

// Jalur file excel keluaran
StringPtr outputHiddenRowPivotTable = outDir->StringAppend(new String("outputHiddenRowPivotTable.xlsx"));

// Muat file excel sampel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(samplePivotTable);

// Akses lembar kerja pertama
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Akses tabel pivot
intrusive_ptr<IPivotTable> pivotTable = worksheet->GetIPivotTables()->GetObjectByIndex(0);

// Dapatkan rentang bodi tabel pivot
intrusive_ptr<ICellArea> dataBodyRange = pivotTable->GetIDataBodyRange();

// Baris awal tabel pivot
int currentRow = 5;

// Baris akhir tabel pivot
int rowsUsed = dataBodyRange->GetendRow();

// Iterasi melalui baris, bandingkan nilai sel dan sembunyikan baris.
for (int i = currentRow; i < rowsUsed; i++) {
	intrusive_ptr<ICell> cell = worksheet->GetICells()->GetICell(i, 4);
	if (strcmp(cell->GetStringValue()->charValue(), "Orange") == 0) {
		worksheet->GetICells()->HideRow(i);
	}
}

// Segarkan dan hitung data di tabel pivot.
pivotTable->RefreshData();
pivotTable->CalculateData();

// Simpan file excel keluaran
workbook->Save(outputHiddenRowPivotTable);
Gambar tabel pivot dengan baris tersembunyi

Gambar tabel pivot dengan baris tersembunyi

Memanipulasi Data Tabel Pivot menggunakan C++

Anda juga dapat memanipulasi data tabel pivot yang ada menggunakan Aspose.Cells for C++ API. Dalam contoh berikut, kami akan mengganti teks “Apple” di sel “A2” dengan “Orange” dan mencerminkan perubahan di tabel pivot. Berikut adalah langkah-langkah untuk memanipulasi data tabel pivot.

Kode contoh berikut menunjukkan cara memperbarui data tabel pivot menggunakan C++.

// Jalur direktori sumber.
StringPtr srcDir = new String("SourceDirectory\\");

// Jalur direktori keluaran.
StringPtr outDir = new String("OutputDirectory\\");

// Jalur file excel masukan
StringPtr samplePivotTable = srcDir->StringAppend(new String("SamplePivotTable.xlsx"));

// Jalur file excel keluaran
StringPtr outputManipulatePivotTable = outDir->StringAppend(new String("outputManipulatePivotTable.xlsx"));

// Muat file excel sampel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(samplePivotTable);

// Akses lembar kerja pertama
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Ubah nilai sel A2 yang ada di dalam data sumber tabel pivot
intrusive_ptr<String> str = new String("Orange");
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(str);

// Akses tabel pivot, segarkan, dan hitung
intrusive_ptr<IPivotTable> pivotTable = worksheet->GetIPivotTables()->GetObjectByIndex(0);
pivotTable->RefreshData();
pivotTable->CalculateData();

// Simpan file excel keluaran
workbook->Save(outputManipulatePivotTable);
Tabel Pivot menampilkan data yang diperbarui

Tabel Pivot menampilkan data yang diperbarui

Dapatkan Lisensi Gratis

Untuk mencoba API tanpa batasan evaluasi, Anda dapat meminta lisensi sementara gratis.

Kesimpulan

Dalam artikel ini, Anda telah mempelajari cara bekerja dengan tabel pivot di file Excel menggunakan C++. Khususnya, Anda telah mempelajari cara membuat tabel pivot dan mengurutkan, menyembunyikan, dan memperbarui data dalam tabel pivot menggunakan C++. Aspose.Cells for C++ adalah API luas yang menyediakan banyak fitur tambahan untuk bekerja dengan file Excel. Anda dapat menjelajahi API secara mendetail dengan mengunjungi dokumentasi resmi. Jika ada pertanyaan, jangan ragu untuk menghubungi kami di forum dukungan gratis.

Lihat juga