我尝试从数组创建xls文件,并使用以下代码在浏览器中下载:
$sheet = array(
array(
'a1 data',
'b1 data',
'c1 data',
'd1 data',
)
);
$doc = new PHPExcel();
$doc->getActiveSheet()->fromArray($sheet, null, 'A1');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="your_name.xls"');
header('Cache-Control: max-age=0');
// Do your stuff here
$writer = PHPExcel_IOFactory::createWriter($doc, 'Excel5');
问题是我得到一个空文件。任何想法可能是什么问题?
答案 0 :(得分:21)
请尝试: As per official documentation,您首先需要使用对象编写器
保存文件如果这是你想要的,请告诉我
<?php
date_default_timezone_set('America/Los_Angeles');
require_once('PHPExcel.php');
$sheet = array(
array(
'a1 data',
'b1 data',
'c1 data',
'd1 data',
)
);
$doc = new PHPExcel();
$doc->setActiveSheetIndex(0);
$doc->getActiveSheet()->fromArray($sheet, null, 'A1');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="your_name.xls"');
header('Cache-Control: max-age=0');
// Do your stuff here
$writer = PHPExcel_IOFactory::createWriter($doc, 'Excel5');
$writer->save('php://output');
?>
答案 1 :(得分:3)
有时我们不能使用像PHPExcel这样的外部库/类,在这种情况下,我建议你使用HTML表并将标题更改为xls,你可以从数组中轻松创建它,非常简单的例子:< / p>
<?php
date_default_timezone_set('America/Los_Angeles');
$sheet = array(
array(
'a1 data',
'b1 data',
'c1 data',
'd1 data',
)
);
$table = '<table><tbody><tr><td>A1</td><td>B1</td><td>C1</td><td>D1</td></tr>';
foreach ($sheet as $row) {
$table.= '<tr><td>'. implode('</td><td>', $row) . '</td></tr>';
}
$table.= '</tbody></table>';
header('Content-Encoding: UTF-8');
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
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;charset=UTF-8");
header ("Content-Disposition: attachment; filename=productsExport.xls" );
echo $table;
?>
答案 2 :(得分:3)
$header = ['c1.', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'c10', 'c11'];
header('Content-Disposition: attachment; filename="data'.date('d-m-y').'.xls"');
header("Content-Type: application/vnd.ms-excel");
$output = fopen('php://output', 'w');
fputcsv($output, $header , "\t");
foreach ($Data as $value) {
$tmp_data = [];
array_push($tmp_data, $value['c1']);
array_push($tmp_data, $value['c2']);
array_push($tmp_data, $value['c3']);
array_push($tmp_data, $value['c4']);
array_push($tmp_data, $value['c5'] );
array_push($tmp_data, $value['c6']);
array_push($tmp_data, $value['c7']);
array_push($tmp_data, $value['c8']);
array_push($tmp_data, $value['c9']);
array_push($tmp_data, $value['c10']);
array_push($tmp_data, $value['c11']);
fputcsv($output, $tmp_data , "\t" );
}
fclose($output);
答案 3 :(得分:-1)
$list=array();
$list['tableheading'] =array('No','Name','Age','Sex');
$fichier = 'sample.xls';
header( "Content-Type: text/csv;charset=utf-8" );
header( "Content-Disposition: attachment;filename=\"$fichier\"" );
header("Pragma: no-cache");
header("Expires: 0");
$fp= fopen('php://output', 'w');
fputcsv($fp,$list['tableheading'] );
$slno=1;
foreach($databasefetch AS $tabledata) {
$data['list']=array($slno,$tabledata['name'],$tabledata['Age'],$tabledata['sex']);
fputcsv($fp, $data['list']);
$slno++;
}
fclose($fp);
exit();