<?php
require_once '../lib/Kendo/Autoload.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$type = $_GET['type'];
if ($type == 'save') {
$fileName = $_POST['fileName'];
$contentType = $_POST['contentType'];
$base64 = $_POST['base64'];
$data = base64_decode($base64);
header('Content-Type:' . $contentType);
header('Content-Length:' . strlen($data));
header('Content-Disposition: attachment; filename=' . $fileName);
echo $data;
}
exit;
}
$transport = new \Kendo\Data\PivotDataSourceTransport();
$read = new \Kendo\Data\PivotDataSourceTransportRead();
$read->url('http://demos.telerik.com/olap/msmdpump.dll')
->contentType('text/xml')
->dataType('text')
->type('POST');
$connection = new \Kendo\Data\PivotDataSourceTransportConnection();
$connection->catalog('Adventure Works DW 2008R2')
->cube('Adventure Works');
$discover = new \Kendo\Data\PivotDataSourceTransportDiscover();
$discover->url('http://demos.telerik.com/olap/msmdpump.dll')
->contentType('text/xml')
->dataType('text')
->type('POST');
$transport ->read($read)
->connection($connection)
->discover($discover);
$schema = new \Kendo\Data\PivotDataSourceSchema();
$schema->type('xmla');
$dateColumn = new \Kendo\Data\PivotDataSourceColumn();
$dateColumn->name('[Date].[Calendar]')
->expand(true);
$productColumn = new \Kendo\Data\PivotDataSourceColumn();
$productColumn->name('[Product].[Category]');
$dataSource = new \Kendo\Data\PivotDataSource();
$dataSource->transport($transport)
->type("xmla")
->addColumn($dateColumn, $productColumn)
->addRow('[Geography].[City]')
->addMeasure('[Measures].[Reseller Freight Cost]')
->schema($schema);
$excel = new \Kendo\UI\GridExcel();
$excel->fileName('Kendo UI Grid Export.xlsx')
->filterable(true)
->proxyURL('excel-export.php?type=save');
$pivotgrid = new \Kendo\UI\PivotGrid('pivotgrid');
$pivotgrid->dataSource($dataSource)
->excel($excel)
->attr('class', 'hidden-on-narrow')
->columnWidth(200)
->configurator("#configurator")
->filterable(true)
->sortable(true)
->height(580);
?>
<div class="responsive-message"></div>
<button id="export" class="k-button k-button-icontext hidden-on-narrow"><span class="k-icon k-i-excel"></span>Export to Excel</button>
<?php
echo $pivotgrid->render();
?>
<script>
$(function() {
$("#export").click(function() {
$("#pivotgrid").getKendoPivotGrid().saveAsExcel();
});
});
</script>
<style>
#export
{
margin: 0 0 10px 1px;
}
</style>
<script src="//cdnjs.cloudflare.com/ajax/libs/jszip/2.4.0/jszip.min.js"></script>