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; 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. * Whether to write a fully Excel compatible CSV file.
* *
@ -111,15 +119,20 @@ class CSV extends BaseWriter implements IWriter
} }
if ($this->excelCompatibility) { if ($this->excelCompatibility) {
fwrite($fileHandle, "\xEF\xBB\xBF"); // Enforce UTF-8 BOM Header $this->setUseBOM(true); // Enforce UTF-8 BOM Header
$this->setEnclosure('"'); // Set enclosure to " $this->setIncludeSeparatorLine(true); // Set separator line
$this->setDelimiter(";"); // Set delimiter to a semi-colon $this->setEnclosure('"'); // Set enclosure to "
$this->setDelimiter(";"); // Set delimiter to a semi-colon
$this->setLineEnding("\r\n"); $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 // Write the UTF-8 BOM code if required
fwrite($fileHandle, "\xEF\xBB\xBF"); 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 // Identify the range that we need to extract from the worksheet
$maxCol = $sheet->getHighestDataColumn(); $maxCol = $sheet->getHighestDataColumn();
@ -231,6 +244,28 @@ class CSV extends BaseWriter implements IWriter
return $this; 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 * Get whether the file should be saved with full Excel Compatibility
* *