导出到xls时文本太大

I'm using this classic php script to export data from a mysql database to an .xls file:

function xlsBOF() {
        echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
        }
        function xlsEOF() {
            echo pack("ss", 0x0A, 0x00);
        }
        function xlsWriteNumber($Row, $Col, $Value) {
            echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
            echo pack("d", $Value);
        }
        function xlsWriteLabel($Row, $Col, $Value) {
            $L = strlen($Value);
            echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
            echo $Value;
        } 
        // prepare headers information
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header("Content-Disposition: attachment; filename=\"export_".date("Y-m-d").".xls\"");
        header("Content-Transfer-Encoding: binary");
        header("Pragma: no-cache");
        header("Expires: 0");
        // start exporting

        xlsBOF();

The problem takes place when, for xlsWriteLabel($r, $c, $value); I use a value which is a medium length string - not bigger than 500 characters.

The value is not printed and I get the following error message:

File error: data may have been lost.

For smaller strings everything works ok.

How can I fix this?