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
- Buat Tabel Pivot di File Excel menggunakan C++
- Sortir Tabel Pivot dalam File Excel menggunakan C++
- Sembunyikan Baris di Tabel Pivot menggunakan C++
- Memanipulasi Data Tabel Pivot 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.
- Pertama, buat instance dari kelas IWorkbook untuk mewakili file Excel baru.
- Akses lembar kerja tempat Anda ingin menyisipkan tabel pivot menggunakan metode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32).
- Tambahkan data sampel untuk tabel pivot.
- Tambahkan tabel pivot menggunakan IWorksheet->GetIPivotTables()->Add(intrusiveptrAspose::Cells::Systems::String sourceData, intrusiveptrAspose::Cells::Systems::String destCellName, intrusiveptrAspose::Cells::Systems::String tableName) metode.
- Untuk mengakses tabel pivot, gunakan metode IWorksheet->GetIPivotTables()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index).
- Manipulasi bidang dan atur gaya tabel pivot.
- Terakhir, simpan file Excel menggunakan IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metode.
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")));
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.
- Pertama, muat file sampel Excel menggunakan kelas IWorkbook.
- Ambil lembar kerja yang berisi tabel pivot menggunakan metode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Akses tabel pivot menggunakan metode IWorksheet->GetIPivotTables()->GetObjectByIndex(Aspose::Cells::Systems::Int32).
- Dapatkan kolom baris dan urutkan tabel pivot menggunakan metode IPivotField->SetAutoSort(bool value) dan IPivotField->SetAscendSort(bool value).
- Muat ulang konten tabel pivot dan hitung data menggunakan metode IPivotTable->RefreshData() dan IPivotTable->CalculateData() secara berurutan.
- Terakhir, simpan file Excel menggunakan IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metode.
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);
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.
- Pertama, muat file sampel Excel menggunakan kelas IWorkbook.
- Ambil lembar kerja yang berisi tabel pivot menggunakan metode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Akses tabel pivot menggunakan metode IWorksheet->GetIPivotTables()->GetObjectByIndex(Aspose::Cells::Systems::Int32).
- Dapatkan kisaran badan data tabel pivot menggunakan metode IPivotTable->GetIDataBodyRange().
- Ulangi baris tabel pivot dan sembunyikan baris yang memenuhi kriteria Anda.
- Muat ulang konten tabel pivot dan hitung data menggunakan metode IPivotTable->RefreshData() dan IPivotTable->CalculateData().
- Terakhir, simpan file Excel menggunakan IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metode.
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);
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.
- Pertama, muat file sampel Excel menggunakan kelas IWorkbook.
- Ambil lembar kerja yang berisi data tabel pivot menggunakan metode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32).
- Perbarui data tabel pivot sesuai dengan kebutuhan Anda.
- Untuk mengakses tabel pivot, gunakan metode IWorksheet->GetIPivotTables()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index).
- Muat ulang konten tabel pivot dan hitung data menggunakan metode IPivotTable->RefreshData() dan IPivotTable->CalculateData().
- Terakhir, simpan file Excel menggunakan IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metode.
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);
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.