Build 4.0.0.29 of xlsgen adds support for writing pivot tables in XLSB files, which brings this feature on par with other file formats (old Excel, XLSX/XLSM, ...).
xlsgen::IXlsWorkbookPtr wbk = engine->New( L"output.xlsb" );
xlsgen::IXlsWorksheetPtr wksht = wbk->AddWorksheet( L"Sheet1" );
wksht->Cell[1][3]->HtmlLabel = L"<span width=10.554688 autofit=\"TRUE\"><font color=#000000 size=11 name=\"Calibri\">q1</font></span>";
wksht->Cell[1][4]->HtmlLabel = L"<font color=#000000 size=11 name=\"Calibri\">q2</font>";
wksht->Cell[1][5]->HtmlLabel = L"<font color=#000000 size=11 name=\"Calibri\">q3</font>";
wksht->Cell[1][6]->HtmlLabel = L"<font color=#000000 size=11 name=\"Calibri\">q4</font>";
wksht->Cell[2][2]->HtmlLabel = L"<font color=#000000 size=11 name=\"Calibri\">s1</font>";
wksht->Cell[2][3]->HtmlDate = L"<span format=\"dd/mm/yyyy\" width=10.554688 autofit=\"TRUE\"><font color=#000000 size=11 name=\"Calibri\">12/05/2015</font></span>";
wksht->Cell[2][4]->HtmlFloat = L"<font color=#000000 size=11 name=\"Calibri\">1.2</font>";
wksht->Cell[2][5]->HtmlFloat = L"<font color=#000000 size=11 name=\"Calibri\">2</font>";
wksht->Cell[2][6]->HtmlFloat = L"<font color=#000000 size=11 name=\"Calibri\">1</font>";
wksht->Cell[3][2]->HtmlLabel = L"<font color=#000000 size=11 name=\"Calibri\">s2</font>";
wksht->Cell[3][3]->HtmlDate = L"<span format=\"dd/mm/yyyy\" width=10.554688 autofit=\"TRUE\"><font color=#000000 size=11 name=\"Calibri\">13/05/2015</font></span>";
wksht->Cell[3][4]->HtmlFloat = L"<font color=#000000 size=11 name=\"Calibri\">1.3</font>";
wksht->Cell[3][5]->HtmlFloat = L"<font color=#000000 size=11 name=\"Calibri\">6</font>";
wksht->Cell[3][6]->HtmlFloat = L"<font color=#000000 size=11 name=\"Calibri\">2</font>";
wksht->Cell[4][2]->HtmlLabel = L"<font color=#000000 size=11 name=\"Calibri\">s3</font>";
wksht->Cell[4][3]->HtmlDate = L"<span format=\"dd/mm/yyyy\" width=10.554688 autofit=\"TRUE\"><font color=#000000 size=11 name=\"Calibri\">14/05/2015</font></span>";
wksht->Cell[4][4]->HtmlFloat = L"<font color=#000000 size=11 name=\"Calibri\">1.4</font>";
wksht->Cell[4][5]->HtmlFloat = L"<font color=#000000 size=11 name=\"Calibri\">5</font>";
wksht->Cell[4][6]->HtmlFloat = L"<font color=#000000 size=11 name=\"Calibri\">0</font>";
xlsgen::IXlsWorksheetPtr wkshtPT = wbk->AddWorksheet( L"SheetPT" );
xlsgen::IXlsPivotTablePtr pt = wkshtPT->NewPivotTable();
pt->DataSource->Range = L"Sheet1!R1C3:R4C6";
pt->Rows->AddByName(L"q1");
pt->Data->AddByName(L"q2");
pt->Data->AddByName(L"q3");
pt->Data->AddByName(L"q4");
pt->InsertAt(3,1);
wbk->Close();