dev-master
9999999-dev
GPL-3.0
The Requires
The Development Requires
v0.3
0.3.0.0
GPL-3.0
The Requires
The Development Requires
Wallogit.com
2017 © Pedro Peláez
A wrapper for a streaming excel-writer., (*1)
Contacts: Richard Klees, (*2)
An excel-write has to implement a kind of functionality as defined., (*3)
To fill the sheet row by row is a recommended feature to increase the speed on mass export of data. It will not be possible to step back to rows or single columns to change values or something else., (*4)
public function addRow(array $values) {
$this->writer->addRow($values);
}
For designing the sheet, it is possible to give any column at any time a new style. E.g. in row 1 to 5 the colum A is bold and left orientated. Starting with row 6 it will only left orientated and not longer bold. This gives the opportunity to design column headers or highlight special values., (*5)
public function setColumnStyle(Style $style, $column) {
$this->writer->setColumnStyle($column, $style);
};
It is possible to create new sheets and switch them by name. If you creating a new sheet, it will be automaticly the current., (*6)
public function createSheet($name) {
$this->writer->createSheet($name);
}
Public function selectSheet($name) {
$this->writer->setCurrentSheet($name);
}
A column can be styled in a lot of ways. This wrapper includes the mostly used., (*7)
public function getNewStyle() {
$style = new Style();
$style ->setFontFamily('Aarial')
->setFontSize(12)
->setItalic(false)
->setBorder(Style::TOP);
return $style;
}
This is a small example for using this wrapper., (*8)
public function exportData($file_name, $file_path, array $header, array $values) {
$writer = new Writer();
$writer->setFileName($file_name);
$writer->setPath($file_path);
$header_style = $this->getHeaderStyle();
$writer->setColumnStyle('A', $header_style);
$write->addRow($header);
$bold_style = $this->getBoldStyle();
$basic_style = $this->getBasicStyle();
$writer->setColumnStyle('A', $bold_style);
$writer->setColumnStyle('B', $basic_style);
foreach($values as $value) {
$write->addRow($value);
}
$writer->setColumnStyle('A', $basic_style);
$writer->setColumnStyle('B', $bold_style);
foreach($values as $value) {
$write->addRow($value);
}
$writer->saveFile();
$write->close();
}
protected function getHeaderStyle() {
$style = new Style()
$style->setBold(true)
->setItalic(true);
return $style;
}
protected function getBoldStyle() {
$style = new Style()
$style->setBold(true)
return $style;
}
protected function getBsicStyle() {
return new Style();
}
The xlsx sheet result might be look like this., (*9)
| R\C | A | B |
|---|---|---|
| 1 | Content for header | |
| 2 | Content in the first column | Content in the second column |
| 3 | Content in the first column | Content in the second column |
| 4 | Content in the first column | Content in the second column |
| 5 | Content in the first column | Content in the second column |
GPL-3.0
GPL-3.0