Allow inclusion of a sep=; line when creating csv files

This commit is contained in:
MarkBaker 2016-03-17 23:04:34 +00:00
parent ee73d559b9
commit b9ae7d1873
1 changed files with 40 additions and 5 deletions

View File

@ -71,6 +71,14 @@ class CSV extends BaseWriter implements IWriter
*/
private $useBOM = false;
/**
* Whether to write a Separator line as the first line of the file
* sep=x
*
* @var boolean
*/
private $includeSeparatorLine = false;
/**
* Whether to write a fully Excel compatible CSV file.
*
@ -111,15 +119,20 @@ class CSV extends BaseWriter implements IWriter
}
if ($this->excelCompatibility) {
fwrite($fileHandle, "\xEF\xBB\xBF"); // Enforce UTF-8 BOM Header
$this->setUseBOM(true); // Enforce UTF-8 BOM Header
$this->setIncludeSeparatorLine(true); // Set separator line
$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) {
}
if ($this->useBOM) {
// Write the UTF-8 BOM code if required
fwrite($fileHandle, "\xEF\xBB\xBF");
}
if ($this->includeSeparatorLine) {
// Write the separator line if required
fwrite($fileHandle, 'sep=' . $this->getDelimiter() . $this->lineEnding);
}
// Identify the range that we need to extract from the worksheet
$maxCol = $sheet->getHighestDataColumn();
@ -231,6 +244,28 @@ class CSV extends BaseWriter implements IWriter
return $this;
}
/**
* Get whether a separator line should be included
*
* @return boolean
*/
public function getIncludeSeparatorLine()
{
return $this->includeSeparatorLine;
}
/**
* Set whether a separator line should be included as the first line of the file
*
* @param boolean $pValue Use separator line? Defaults to false
* @return PHPExcel_Writer_CSV
*/
public function setIncludeSeparatorLine($pValue = false)
{
$this->includeSeparatorLine = $pValue;
return $this;
}
/**
* Get whether the file should be saved with full Excel Compatibility
*