php 生成文件出错,PHP创建的Excel工作表在打开时创建错误

因此,我当前的代码可以100%工作,文件已经制作好并在excel中打开.但是在打开时,必须点击一些错误才能打开文件.它们如下:

The file format and extension of ‘address-book.xls’ don’t match. The file could be corrupted or unsafe. Unless you trust its source, don’t open it. Do you want to open it anyway?

然后:

Excel has detected that ‘address-book.xls is a SYLK file, but cannot load it. Either the file has errors or it is not a SYLK file format. Click OK to try to open the file in a different format.

然后最后:

The file format and extension of ‘address-book.xls’ don’t match. The file could be corrupted or unsafe. Unless you trust its source, don’t open it. Do you want to open it anyway?

之后,它无奈地打开.这是创建它的代码.

格式化电子表格的任何帮助,例如使单元格足够大以容纳内容,都将非常有用.但是消除打开时的错误是我的首要任务.

require_once('conn.php');

$colnames = array(

'id' => "ID",

'Title' => "Title",

'First_Name' => "First name",

'Last_Name' => "Last Name",

'Address' => "Address",

'City' => "City",

'State' => "State",

'Zipcode' => "Zipcode",

'Home_Phone' => "Home Phone",

'Cell_Phone' => "Cell Phone",

'Email1' => "Email #1",

'Email2' => "Email #2"

);

function map_colnames($input){

global $colnames;

return isset($colnames[$input]) ? $colnames[$input] : $input;

}

function cleanData(&$str){

$str = preg_replace("/\t/", "\\t", $str);

$str = preg_replace("/\r?\n/", "\\n", $str);

if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';

}

$filename = "address-book";

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

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

header("Pragma: no-cache");

header("Expires: 0");

$flag = false;

$sql = "SELECT * FROM ".$sDB_table." ORDER BY Last_Name";

$query = $sDBConn -> prepare($sql);

$query -> execute();

while(false !== ($row = $query->fetch(PDO::FETCH_ASSOC))) {

if(!$flag){

$firstline = array_map(__NAMESPACE__ . '\map_colnames', array_keys($row));

echo implode("\t", $firstline) . "\r\n";

$flag = true;

}

array_walk($row, __NAMESPACE__ . '\cleanData');

echo implode("\t", array_values($row)) . "\r\n";

}

exit;

?>

PHPExcel错误:

$colnames = array("Title","First name","Last Name","Address","City","State","Zipcode","Home Phone","Cell Phone","Email #1","Email #2");

$col = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');

// Add Headers

for($i=0;$i

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue($col[$i]."1", $colnames[$i]);

}

$sql = "SELECT * FROM ".$sDB_table." ORDER BY Last_Name";

$query = $sDBConn -> prepare($sql);

$query -> execute();

$rownum = 1;

//Add Content

while(false !== ($row = $query->fetch(PDO::FETCH_ASSOC))) {

$rownum++;

for($i=0;$i

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue($col[$i]."".$rownum, $row[$i]);

}

}

当我打了while语句时,就会发生错误,如果我把那部分拿出来,它就会起作用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值