XLSXWriter::writeCell PHP Method

writeCell() protected method

protected writeCell ( XLSXWriter_BuffererWriter &$file, $row_number, $column_number, $value, $cell_format_index )
$file XLSXWriter_BuffererWriter
    protected function writeCell(XLSXWriter_BuffererWriter &$file, $row_number, $column_number, $value, $cell_format_index)
    {
        $cell_type = $this->cell_types[$cell_format_index];
        $cell_name = self::xlsCell($row_number, $column_number);
        if (!is_scalar($value) || $value === '') {
            //objects, array, empty
            $file->write('<c r="' . $cell_name . '" s="' . $cell_format_index . '"/>');
        } elseif (is_string($value) && $value[0] == '=') {
            $file->write('<c r="' . $cell_name . '" s="' . $cell_format_index . '" t="s"><f>' . self::xmlspecialchars($value) . '</f></c>');
        } elseif ($cell_type == 'date') {
            $file->write('<c r="' . $cell_name . '" s="' . $cell_format_index . '" t="n"><v>' . intval(self::convert_date_time($value)) . '</v></c>');
        } elseif ($cell_type == 'datetime') {
            $file->write('<c r="' . $cell_name . '" s="' . $cell_format_index . '" t="n"><v>' . self::convert_date_time($value) . '</v></c>');
        } elseif ($cell_type == 'currency' || $cell_type == 'percent' || $cell_type == 'numeric') {
            $file->write('<c r="' . $cell_name . '" s="' . $cell_format_index . '" t="n"><v>' . self::xmlspecialchars($value) . '</v></c>');
            //int,float,currency
        } else {
            if (!is_string($value)) {
                $file->write('<c r="' . $cell_name . '" s="' . $cell_format_index . '" t="n"><v>' . $value * 1 . '</v></c>');
            } else {
                if ($value[0] != '0' && $value[0] != '+' && filter_var($value, FILTER_VALIDATE_INT, array('options' => array('max_range' => 2147483647)))) {
                    $file->write('<c r="' . $cell_name . '" s="' . $cell_format_index . '" t="n"><v>' . $value * 1 . '</v></c>');
                } else {
                    //implied: ($cell_format=='string')
                    $file->write('<c r="' . $cell_name . '" s="' . $cell_format_index . '" t="s"><v>' . self::xmlspecialchars($this->setSharedString($value)) . '</v></c>');
                }
            }
        }
    }