Merge branch 'master' into feature/num_format

This commit is contained in:
Rushleader 2016-06-10 10:46:55 +02:00 committed by GitHub
commit 7baf54915b
6 changed files with 39 additions and 5 deletions

View File

@ -15,10 +15,13 @@ tools:
php_pdepend: true
php_loc:
enabled: true
excluded_dirs: [vendor, tests]
php_cpd:
filter:
paths: ['src']
php_cpd: false # Must be disabled to use php_sim instead
php_sim:
enabled: true
excluded_dirs: [vendor, tests]
filter:
paths: ['src']
build_failure_conditions:
- 'project.metric("scrutinizer.quality", < 9)' # Code Quality Rating drops below 9

View File

@ -252,6 +252,17 @@ class GlobalFunctionsHelper
header($string);
}
/**
* Wrapper around global function ob_end_clean()
* @see ob_end_clean()
*
* @return void
*/
public function ob_end_clean()
{
ob_end_clean();
}
/**
* Wrapper around global function iconv()
* @see iconv()

View File

@ -24,6 +24,7 @@ class CellValueFormatter
const XML_NODE_P = 'p';
const XML_NODE_S = 'text:s';
const XML_NODE_A = 'text:a';
const XML_NODE_SPAN = 'text:span';
/** Definition of XML attribute used to parse data */
const XML_ATTRIBUTE_TYPE = 'office:value-type';
@ -104,7 +105,7 @@ class CellValueFormatter
$spaceAttribute = $childNode->getAttribute(self::XML_ATTRIBUTE_C);
$numSpaces = (!empty($spaceAttribute)) ? intval($spaceAttribute) : 1;
$currentPValue .= str_repeat(' ', $numSpaces);
} else if ($childNode->nodeName === self::XML_NODE_A) {
} else if ($childNode->nodeName === self::XML_NODE_A || $childNode->nodeName === self::XML_NODE_SPAN) {
$currentPValue .= $childNode->nodeValue;
}
}

View File

@ -121,6 +121,10 @@ abstract class AbstractWriter implements WriterInterface
$this->filePointer = $this->globalFunctionsHelper->fopen('php://output', 'w');
$this->throwIfFilePointerIsNotAvailable();
// Clear any previous output (otherwise the generated file will be corrupted)
// @see https://github.com/box/spout/issues/241
$this->globalFunctionsHelper->ob_end_clean();
// Set headers
$this->globalFunctionsHelper->header('Content-Type: ' . static::$headerContentType);
$this->globalFunctionsHelper->header('Content-Disposition: attachment; filename="' . $this->outputFilePath . '"');
@ -238,7 +242,8 @@ abstract class AbstractWriter implements WriterInterface
public function addRows(array $dataRows)
{
if (!empty($dataRows)) {
if (!is_array($dataRows[0])) {
$firstRow = reset($dataRows);
if (!is_array($firstRow)) {
throw new InvalidArgumentException('The input should be an array of arrays');
}

View File

@ -468,6 +468,20 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($expectedRows, $allRows, 'Text in hyperlinks should be read');
}
/**
* @return void
*/
public function testReaderShouldReadInlineFontFormattingAsText()
{
$allRows = $this->getAllRowsForFile('sheet_with_inline_font_formatting.ods');
$expectedRows = [
['I am a yellow bird']
];
$this->assertEquals($expectedRows, $allRows, 'Text formatted inline should be read');
}
/**
* @param string $fileName
* @param bool|void $shouldFormatDates