php保存xls文件,php – 使用fwrite保存.xls文件

我必须创建一个脚本,该脚本接受mySQL表,并将其导出为.XLS格式,然后将该文件保存到Web主机上的指定文件夹中.

我得到了它的工作,但现在我似乎无法让它自动将文件保存到该位置而不提示用户.

它需要在指定的时间每天运行,因此它可以将前几天的内容保存到Web主机上的.XLS文件中.

这是代码:

// DB TABLE Exporter

//

// How to use:

//

// Place this file in a safe place, edit the info just below here

// browse to the file, enjoy!

// CHANGE THIS STUFF FOR WHAT YOU NEED TO DO

$dbhost = "-";

$dbuser = "-";

$dbpass = "-";

$dbname = "-";

$dbtable = "-";

// END CHANGING STUFF

$cdate = date("Y-m-d"); // get current date

// first thing that we are going to do is make some functions for writing out

// and excel file. These functions do some hex writing and to be honest I got

// them from some where else but hey it works so I am not going to question it

// just reuse

// This one makes the beginning of the xls file

function xlsBOF() {

echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);

return;

}

// This one makes the end of the xls file

function xlsEOF() {

echo pack("ss", 0x0A, 0x00);

return;

}

// this will write text in the cell you specify

function xlsWriteLabel($Row, $Col, $Value ) {

$L = strlen($Value);

echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);

echo $Value;

return;

}

// make the connection an DB query

$dbc = mysql_connect( $dbhost , $dbuser , $dbpass ) or die( mysql_error() );

mysql_select_db( $dbname );

$q = "SELECT * FROM ".$dbtable." WHERE date ='$cdate'";

$qr = mysql_query( $q ) or die( mysql_error() );

// Ok now we are going to send some headers so that this

// thing that we are going make comes out of browser

// as an xls file.

//

header("Pragma: public");

header("Expires: 0");

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Content-Type: application/force-download");

header("Content-Type: application/octet-stream");

header("Content-Type: application/download");

//this line is important its makes the file name

header("Content-Disposition: attachment;filename=export_".$dbtable.".xls ");

header("Content-Transfer-Encoding: binary ");

// start the file

xlsBOF();

// these will be used for keeping things in order.

$col = 0;

$row = 0;

// This tells us that we are on the first row

$first = true;

while( $qrow = mysql_fetch_assoc( $qr ) )

{

// Ok we are on the first row

// lets make some headers of sorts

if( $first )

{

foreach( $qrow as $k => $v )

{

// take the key and make label

// make it uppper case and replace _ with ' '

xlsWriteLabel( $row, $col, strtoupper( ereg_replace( "_" , " " , $k ) ) );

$col++;

}

// prepare for the first real data row

$col = 0;

$row++;

$first = false;

}

// go through the data

foreach( $qrow as $k => $v )

{

// write it out

xlsWriteLabel( $row, $col, $v );

$col++;

}

// reset col and goto next row

$col = 0;

$row++;

}

xlsEOF();

exit();

?>

我尝试使用,fwrite来完成这个,但它似乎没有很好,我删除了标题信息,但没有任何效果.

这是原始代码,正如我发现的那样,任何帮助都将非常感激. ?

Thanx提前. ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值