php从服务器返回excel文件,我不想这样做

时间:2014-05-19 07:22:24

标签: php

我的服务器中有一个名为Admission.xls的文件 我想在该文件中写入$ _POST数据&仅将其保存在服务器中,我不会返回给用户,但它会返回给用户

这是我的代码

<?php 

// ----- begin of function library ----- 
// Excel begin of file header 
function xlsBOF() { 
    echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);  
    return; 
    } 
// Excel end of file footer 
function xlsEOF() { 
    echo pack("ss", 0x0A, 0x00); 
    return; 
} 
// Function to write a Number (double) into Row, Col 
function xlsWriteNumber($Row, $Col, $Value) { 
    echo pack("sssss", 0x203, 14, $Row, $Col, 0x0); 
    echo pack("d", $Value); 
    return; 
} 
// Function to write a label (text) into Row, Col 
function xlsWriteLabel($Row, $Col, $Value ) { 
    $L = strlen($Value); 
    echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
    echo $Value; 
return; 
} 
// ----- end of function library -----

// ------ MS EXCEL START ------

header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT"); 
header ("Cache-Control: no-cache, must-revalidate");     
header ("Pragma: no-cache");     
header ('Content-type: application/x-msexcel'); 
header ("Content-Disposition: attachment; filename=Admission.xls" );  
header ("Content-Description: PHP/INTERBASE Generated Data" );

// -----LOOP $_POST VALUES -----
$row = 2;
$col = 1;
xlsBOF();
foreach($_POST as $value ) {
    xlsWriteLabel($row, $col, $value );
    $col++;
}
xlsEOF();

// ------ MS EXCEL END -----
?>  

如果可能请告诉我如何打开,写入和保存服务器中的excel文件 谢谢你

2 个答案:

答案 0 :(得分:0)

您可以通过捕获输出缓冲区并将其写入文件来完成此操作。

在此处阅读:http://www.php.net/manual/en/book.outcontrol.php


这是你在剧本中如何做到的。

删除这些:

header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT"); 
header ("Cache-Control: no-cache, must-revalidate");     
header ("Pragma: no-cache");     
header ('Content-type: application/x-msexcel'); 
header ("Content-Disposition: attachment; filename=Admission.xls" );  
header ("Content-Description: PHP/INTERBASE Generated Data" );

并改变你的foreach循环代码:

// -----LOOP $_POST VALUES -----
ob_start();
$row = 2;
$col = 1;
xlsBOF();
foreach($_POST as $value ) {
    xlsWriteLabel($row, $col, $value );
    $col++;
}
xlsEOF();
$xlsData = ob_get_contents();
ob_end_clean();

// -----WRITE EXCEL DATA TO FILE--
$h = @fopen('Admission.xls', 'w');
if ($h) {
    fwrite($h, $xlsData);
    fclose($h);
}

// -----
exit('Post data written to Admission.xls on server.');

答案 1 :(得分:0)

我认为你可以使用PHPExcel,你将有很多方法来完成这项任务。

Have look here