При прогоне xlsx
файла через PHPExcel
выдает ошибки типа:
Notice: Undefined offset: 0... в файле Excel2007.php
Строка: $value = $sharedStrings[intval($c->v)];
При этом, если взять оригинальный файл xlsx
и просто пересохранить в Excel - все читается без ошибок.
Про типы данных Shared и InlineStr читал, но не пойму, как узнать, какие ячейки к какому типу принадлежат. Вывод данных в ходе выполнения скрипта включал - везде определяет как Shared, но тем не менее...
Подскажите, пожалуйста, как можно выявить причину ошибки, и как ее устранить.
UPD:
Кусок кода:
`switch ($cellDataType) {
case "s":
// echo 'String<br />';
if ((string)$c->v != '') {
$value = $sharedStrings[intval($c->v)];
if ($value instanceof PHPExcel_RichText) {
$value = clone $value;
}
} else {
$value = '';
}
break;
case "b":
// echo 'Boolean<br />';
if (!isset($c->f)) {
$value = self::_castToBool($c);
} else {
// Formula
$this->_castToFormula($c,$r,$cellDataType,$value,$calculatedValue,$sharedFormulas,'_castToBool');
if (isset($c->f['t'])) {
$att = array();
$att = $c->f;
$docSheet->getCell($r)->setFormulaAttributes($att);
}
// echo '$calculatedValue = '.$calculatedValue.'<br />';
}
break;
case "inlineStr":
// echo 'Inline String<br />';
$value = $this->_parseRichText($c->is);
break;
case "e":
// echo 'Error<br />';
if (!isset($c->f)) {
$value = self::_castToError($c);
} else {
// Formula
$this->_castToFormula($c,$r,$cellDataType,$value,$calculatedValue,$sharedFormulas,'_castToError');
// echo '$calculatedValue = '.$calculatedValue.'<br />';
}
break;
default:
// echo 'Default<br />';
if (!isset($c->f)) {
// echo 'Not a Formula<br />';
$value = self::_castToString($c);
} else {
// echo 'Treat as Formula<br />';
// Formula
$this->_castToFormula($c,$r,$cellDataType,$value,$calculatedValue,$sharedFormulas,'_castToString');
// echo '$calculatedValue = '.$calculatedValue.'<br />';
}
break;
}`
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть библиотека, в ней есть книги в оригинале (для каждой книги разный язык) и к ним (не ко всем) есть книги которые переведены на другие...
Идея бота в дискорде такова, что при включении он меняет название голосового канала на количество участников на сервере, но он этого почему...