class PHPExcel_Writer_CSV in Loft Data Grids 6.2
Same name and namespace in other branches
- 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/CSV.php \PHPExcel_Writer_CSV
PHPExcel_Writer_CSV
@category PHPExcel @package PHPExcel_Writer_CSV @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
Hierarchy
- class \PHPExcel_Writer_Abstract implements PHPExcel_Writer_IWriter
- class \PHPExcel_Writer_CSV implements PHPExcel_Writer_IWriter
Expanded class hierarchy of PHPExcel_Writer_CSV
File
- vendor/
phpoffice/ phpexcel/ Classes/ PHPExcel/ Writer/ CSV.php, line 36
View source
class PHPExcel_Writer_CSV extends PHPExcel_Writer_Abstract implements PHPExcel_Writer_IWriter {
/**
* PHPExcel object
*
* @var PHPExcel
*/
private $_phpExcel;
/**
* Delimiter
*
* @var string
*/
private $_delimiter = ',';
/**
* Enclosure
*
* @var string
*/
private $_enclosure = '"';
/**
* Line ending
*
* @var string
*/
private $_lineEnding = PHP_EOL;
/**
* Sheet index to write
*
* @var int
*/
private $_sheetIndex = 0;
/**
* Whether to write a BOM (for UTF8).
*
* @var boolean
*/
private $_useBOM = false;
/**
* Whether to write a fully Excel compatible CSV file.
*
* @var boolean
*/
private $_excelCompatibility = false;
/**
* Create a new PHPExcel_Writer_CSV
*
* @param PHPExcel $phpExcel PHPExcel object
*/
public function __construct(PHPExcel $phpExcel) {
$this->_phpExcel = $phpExcel;
}
/**
* Save PHPExcel to file
*
* @param string $pFilename
* @throws PHPExcel_Writer_Exception
*/
public function save($pFilename = null) {
// Fetch sheet
$sheet = $this->_phpExcel
->getSheet($this->_sheetIndex);
$saveDebugLog = PHPExcel_Calculation::getInstance($this->_phpExcel)
->getDebugLog()
->getWriteDebugLog();
PHPExcel_Calculation::getInstance($this->_phpExcel)
->getDebugLog()
->setWriteDebugLog(FALSE);
$saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType();
PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE);
// Open file
$fileHandle = fopen($pFilename, 'wb+');
if ($fileHandle === false) {
throw new PHPExcel_Writer_Exception("Could not open file {$pFilename} for writing.");
}
if ($this->_excelCompatibility) {
fwrite($fileHandle, "");
// Enforce UTF-8 BOM Header
$this
->setEnclosure('"');
// Set enclosure to "
$this
->setDelimiter(";");
// Set delimiter to a semi-colon
$this
->setLineEnding("\r\n");
fwrite($fileHandle, 'sep=' . $this
->getDelimiter() . $this->_lineEnding);
}
elseif ($this->_useBOM) {
// Write the UTF-8 BOM code if required
fwrite($fileHandle, "");
}
// Identify the range that we need to extract from the worksheet
$maxCol = $sheet
->getHighestDataColumn();
$maxRow = $sheet
->getHighestDataRow();
// Write rows to file
for ($row = 1; $row <= $maxRow; ++$row) {
// Convert the row to an array...
$cellsArray = $sheet
->rangeToArray('A' . $row . ':' . $maxCol . $row, '', $this->_preCalculateFormulas);
// ... and write to the file
$this
->_writeLine($fileHandle, $cellsArray[0]);
}
// Close file
fclose($fileHandle);
PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType);
PHPExcel_Calculation::getInstance($this->_phpExcel)
->getDebugLog()
->setWriteDebugLog($saveDebugLog);
}
/**
* Get delimiter
*
* @return string
*/
public function getDelimiter() {
return $this->_delimiter;
}
/**
* Set delimiter
*
* @param string $pValue Delimiter, defaults to ,
* @return PHPExcel_Writer_CSV
*/
public function setDelimiter($pValue = ',') {
$this->_delimiter = $pValue;
return $this;
}
/**
* Get enclosure
*
* @return string
*/
public function getEnclosure() {
return $this->_enclosure;
}
/**
* Set enclosure
*
* @param string $pValue Enclosure, defaults to "
* @return PHPExcel_Writer_CSV
*/
public function setEnclosure($pValue = '"') {
if ($pValue == '') {
$pValue = null;
}
$this->_enclosure = $pValue;
return $this;
}
/**
* Get line ending
*
* @return string
*/
public function getLineEnding() {
return $this->_lineEnding;
}
/**
* Set line ending
*
* @param string $pValue Line ending, defaults to OS line ending (PHP_EOL)
* @return PHPExcel_Writer_CSV
*/
public function setLineEnding($pValue = PHP_EOL) {
$this->_lineEnding = $pValue;
return $this;
}
/**
* Get whether BOM should be used
*
* @return boolean
*/
public function getUseBOM() {
return $this->_useBOM;
}
/**
* Set whether BOM should be used
*
* @param boolean $pValue Use UTF-8 byte-order mark? Defaults to false
* @return PHPExcel_Writer_CSV
*/
public function setUseBOM($pValue = false) {
$this->_useBOM = $pValue;
return $this;
}
/**
* Get whether the file should be saved with full Excel Compatibility
*
* @return boolean
*/
public function getExcelCompatibility() {
return $this->_excelCompatibility;
}
/**
* Set whether the file should be saved with full Excel Compatibility
*
* @param boolean $pValue Set the file to be written as a fully Excel compatible csv file
* Note that this overrides other settings such as useBOM, enclosure and delimiter
* @return PHPExcel_Writer_CSV
*/
public function setExcelCompatibility($pValue = false) {
$this->_excelCompatibility = $pValue;
return $this;
}
/**
* Get sheet index
*
* @return int
*/
public function getSheetIndex() {
return $this->_sheetIndex;
}
/**
* Set sheet index
*
* @param int $pValue Sheet index
* @return PHPExcel_Writer_CSV
*/
public function setSheetIndex($pValue = 0) {
$this->_sheetIndex = $pValue;
return $this;
}
/**
* Write line to CSV file
*
* @param mixed $pFileHandle PHP filehandle
* @param array $pValues Array containing values in a row
* @throws PHPExcel_Writer_Exception
*/
private function _writeLine($pFileHandle = null, $pValues = null) {
if (is_array($pValues)) {
// No leading delimiter
$writeDelimiter = false;
// Build the line
$line = '';
foreach ($pValues as $element) {
// Escape enclosures
$element = str_replace($this->_enclosure, $this->_enclosure . $this->_enclosure, $element);
// Add delimiter
if ($writeDelimiter) {
$line .= $this->_delimiter;
}
else {
$writeDelimiter = true;
}
// Add enclosed string
$line .= $this->_enclosure . $element . $this->_enclosure;
}
// Add line ending
$line .= $this->_lineEnding;
// Write to file
fwrite($pFileHandle, $line);
}
else {
throw new PHPExcel_Writer_Exception("Invalid data row passed to CSV writer.");
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
PHPExcel_Writer_Abstract:: |
protected | property | * Disk caching directory * * | |
PHPExcel_Writer_Abstract:: |
protected | property | * Write charts that are defined in the workbook? * Identifies whether the Writer should write definitions for any charts that exist in the PHPExcel object; * * | |
PHPExcel_Writer_Abstract:: |
protected | property | * Pre-calculate formulas * Forces PHPExcel to recalculate all formulae in a workbook when saving, so that the pre-calculated values are * immediately available to MS Excel or other office spreadsheet viewer when opening the file * * | 1 |
PHPExcel_Writer_Abstract:: |
protected | property | * Use disk caching where possible? * * | |
PHPExcel_Writer_Abstract:: |
public | function | * Get disk caching directory * * | |
PHPExcel_Writer_Abstract:: |
public | function | * Write charts in workbook? * If this is true, then the Writer will write definitions for any charts that exist in the PHPExcel object. * If false (the default) it will ignore any charts defined in the PHPExcel object. * * | |
PHPExcel_Writer_Abstract:: |
public | function | Get Pre-Calculate Formulas flag * If this is true (the default), then the writer will recalculate all formulae in a workbook when saving, * so that the pre-calculated values are immediately available to MS Excel or other office… | |
PHPExcel_Writer_Abstract:: |
public | function | * Get use disk caching where possible? * * | |
PHPExcel_Writer_Abstract:: |
public | function | * Set write charts in workbook * Set to true, to advise the Writer to include any charts that exist in the PHPExcel object. * Set to false (the default) to ignore charts. * * | |
PHPExcel_Writer_Abstract:: |
public | function | Set Pre-Calculate Formulas * Set to true (the default) to advise the Writer to calculate all formulae on save * Set to false to prevent precalculation of formulae on save. | |
PHPExcel_Writer_Abstract:: |
public | function | * Set use disk caching where possible? * * | |
PHPExcel_Writer_CSV:: |
private | property | * Delimiter * * | |
PHPExcel_Writer_CSV:: |
private | property | * Enclosure * * | |
PHPExcel_Writer_CSV:: |
private | property | * Whether to write a fully Excel compatible CSV file. * * | |
PHPExcel_Writer_CSV:: |
private | property | * Line ending * * | |
PHPExcel_Writer_CSV:: |
private | property | * PHPExcel object * * | |
PHPExcel_Writer_CSV:: |
private | property | * Sheet index to write * * | |
PHPExcel_Writer_CSV:: |
private | property | * Whether to write a BOM (for UTF8). * * | |
PHPExcel_Writer_CSV:: |
public | function | * Get delimiter * * | |
PHPExcel_Writer_CSV:: |
public | function | * Get enclosure * * | |
PHPExcel_Writer_CSV:: |
public | function | * Get whether the file should be saved with full Excel Compatibility * * | |
PHPExcel_Writer_CSV:: |
public | function | * Get line ending * * | |
PHPExcel_Writer_CSV:: |
public | function | * Get sheet index * * | |
PHPExcel_Writer_CSV:: |
public | function | * Get whether BOM should be used * * | |
PHPExcel_Writer_CSV:: |
public | function |
* Save PHPExcel to file
*
* Overrides PHPExcel_Writer_IWriter:: |
|
PHPExcel_Writer_CSV:: |
public | function | * Set delimiter * * | |
PHPExcel_Writer_CSV:: |
public | function | * Set enclosure * * | |
PHPExcel_Writer_CSV:: |
public | function | * Set whether the file should be saved with full Excel Compatibility * * | |
PHPExcel_Writer_CSV:: |
public | function | * Set line ending * * | |
PHPExcel_Writer_CSV:: |
public | function | * Set sheet index * * | |
PHPExcel_Writer_CSV:: |
public | function | * Set whether BOM should be used * * | |
PHPExcel_Writer_CSV:: |
private | function | * Write line to CSV file * * | |
PHPExcel_Writer_CSV:: |
public | function | * Create a new PHPExcel_Writer_CSV * * |