Excel Exporting Table Column Width and Row Height
Exporting excel table with column width and row height
productName
|
dollar_sales
|
---|---|
1937 Lincoln Berline | 3,726 |
1936 Mercedes-Benz 500K Special Roadster | 1,768 |
1952 Alpine Renault 1300 | 5,572 |
1962 LanciaA Delta 16V | 5,026 |
1958 Setra Bus | 3,284 |
Showing 1 to 5 of 5 entries
- Description
- index.php
- MyReport.php
- MyReport.view.php
- MyReportExcel.view.php
- export.php
- customer_product_dollarsales2.csv
This example demonstrates how to export table with column width and row height to an excel file.
<div>
<?php
\koolreport\excel\Table::create(array(
...
'columns' => [
'productName' => [
'label' => 'Info-Product-Name',
'width' => 60, // overrides outside "columnWidth" property
],
...
],
// 'rowHeight' => '50',
'rowHeight' => function($row, $rowIndex) {
// return 'auto';
return 10 * ($rowIndex + 1);
},
// 'columnWidth' => '30',
'columnWidth' => function($columnName, $columnIndex) {
if ($columnName === 'dollar_sales') return '10';
else return 'auto';
},
// 'columnAutoSize' => false,
));
?>
</div>
<?php
require_once "MyReport.php";
$report = new MyReport;
$report->run()->render();
<?php
require_once "../../../load.koolreport.php";
use \koolreport\processes\Map;
use \koolreport\processes\Limit;
use \koolreport\processes\Filter;
use \koolreport\cube\processes\Cube;
use \koolreport\pivot\processes\Pivot;
class MyReport extends koolreport\KoolReport
{
use \koolreport\export\Exportable;
use \koolreport\excel\ExcelExportable;
use \koolreport\excel\BigSpreadsheetExportable;
function settings()
{
return array(
"dataSources" => array(
"dollarsales"=>array(
'filePath' => '../../../databases/customer_product_dollarsales2.csv',
'fieldSeparator' => ';',
'class' => "\koolreport\datasources\CSVDataSource"
),
)
);
} function setup()
{
$node = $this->src('dollarsales')
//->query('select *, dollar_sales as dollar_sales2 from customer_product_dollarsales2')
->pipe(new Map([
'{value}' => function($row, $meta) {
$row['orderQuarter'] = 'Q' . $row['orderQuarter'];
return $row;
},
'{meta}' => function($meta) {
$meta['columns']['orderDate']['type'] = 'datetime';
$meta['columns']['orderQuarter']['type'] = 'string';
return $meta;
}
]))
;
$node
->pipe(new Limit(array(
5, 0
)))
->pipe(new Map([
"{meta}" => function($meta) {
$cMeta = & $meta["columns"]["dollar_sales"];
$cMeta["footer"] = "sum";
$cMeta["type"] = "number";
// print_r($meta); exit;
return $meta;
}
]))
->pipe($this->dataStore('orders'));
}
}
<?php
use \koolreport\datagrid\DataTables;
?>
<div class="report-content">
<div style='text-align: center;margin-bottom:30px;'>
<h1>Excel Exporting Table Column Width and Row Height</h1>
<p class="lead">Exporting excel table with column width and row height</p>
<form method="post">
<button type="submit" class="btn btn-primary" formaction="export.php?type=excel">Download Excel</button>
</form>
</div>
<div class='box-container'>
<div>
<?php
DataTables::create(array(
"dataSource" => $this->dataStore('orders'),
"columns"=>array(
"productName",
"dollar_sales"=>array(
"type"=>"number",
"width" => "200px",
),
),
"options" => [
"ordering" => false,
],
"cssStyle" => [
"tr" => function($row, $colMetas, $rowIndex) {
return "height: " . (20 * ($rowIndex + 1)) . "px;";
},
],
));
?>
</div>
</div>
</div>
<?php
$sheet1 = "Sales by Customer";
?>
<div sheet-name="<?php echo $sheet1; ?>">
<div>Orders Table</div>
<div>
<?php
\koolreport\excel\Table::create(array(
"dataSource" => $this->dataStore('orders'),
'columns' => [
'productName' => [
'label' => 'Info-Product-Name',
'width' => 60, // overrides outside "columnWidth" property
],
'dollar_sales' => [
'footerText' => "Total value: \n @value",
],
],
// 'rowHeight' => '50',
'rowHeight' => function($row, $rowIndex) {
// return 'auto';
return 10 * ($rowIndex + 1);
},
// 'columnWidth' => '30',
'columnWidth' => function($columnName, $columnIndex) {
if ($columnName === 'dollar_sales') return '10';
else return 'auto';
},
// 'columnAutoSize' => false,
));
?>
</div>
</div>
<?php
include "MyReport.php";
$report = new MyReport;
$report->run();
$report->exportToExcel('MyReportExcel')->toBrowser("MyReportExcel.xlsx");
customerName | productName | productLine | orderDate | orderDay | orderMonth | orderYear | orderQuarter | dollar_sales |
---|---|---|---|---|---|---|---|---|
Vitachrome Inc. | 1937 Lincoln Berline | Vintage Cars | 2003-01-10 00:00:00 | 10 | 1 | 2003 | 1 | 3726.45 |
Vitachrome Inc. | 1936 Mercedes-Benz 500K Special Roadster | Vintage Cars | 2003-01-10 00:00:00 | 10 | 1 | 2003 | 1 | 1768.33 |
Baane Mini Imports | 1952 Alpine Renault 1300 | Classic Cars | 2003-01-29 00:00:00 | 29 | 1 | 2003 | 1 | 5571.8 |
Baane Mini Imports | 1962 LanciaA Delta 16V | Classic Cars | 2003-01-29 00:00:00 | 29 | 1 | 2003 | 1 | 5026.14 |
Baane Mini Imports | 1958 Setra Bus | Trucks and Buses | 2003-01-29 00:00:00 | 29 | 1 | 2003 | 1 | 3284.28 |
Baane Mini Imports | 1940 Ford Pickup Truck | Trucks and Buses | 2003-01-29 00:00:00 | 29 | 1 | 2003 | 1 | 3307.5 |
Baane Mini Imports | 1926 Ford Fire Engine | Trucks and Buses | 2003-01-29 00:00:00 | 29 | 1 | 2003 | 1 | 1283.48 |
Baane Mini Imports | 1913 Ford Model T Speedster | Vintage Cars | 2003-01-29 00:00:00 | 29 | 1 | 2003 | 1 | 2489.13 |
Baane Mini Imports | 1934 Ford V8 Coupe | Vintage Cars | 2003-01-29 00:00:00 | 29 | 1 | 2003 | 1 | 2164.4 |
Baane Mini Imports | 18th Century Vintage Horse Carriage | Vintage Cars | 2003-01-29 00:00:00 | 29 | 1 | 2003 | 1 | 2173 |
What People Are Saying
"KoolReport helps me very much in creating data report for my corporate! Keep up your good work!"
--
Alain Melsens
"The first use of your product. I was impressed by its easiness and powerfulness. This product is a great and amazing."
--
Dr. Lew Choy Onn
"Fantastic framework for reporting!"
--
Greg Schneider