我已经使用 PHPExcel 完成了它。这里是一个例子:
`$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$col = 1;
$struc=array(
"Col 1",
"Col 2",
"Col 3"
);
$alphas = array("A", "B", 'C','D', 'E', 'F', 'G', 'H','I', 'J', 'K', 'L', 'M', 'N','O', 'P','Q','R','S');
$styleArray = array( 'font' => array( 'bold' => true, ), 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, ), 'borders' => array( 'top' => array( 'style' => PHPExcel_Style_Border::BORDER_THIN, ), ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR, 'rotation' => 90, 'startcolor' => array( 'argb' => 'FFA0A0A0', ), 'endcolor' => array( 'argb' => 'FFFFFFFF', ), ), );
foreach ( $struc as $key => $val){
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($key, $col, $val);
$objPHPExcel->getActiveSheet()->getColumnDimension($alphas[$key])->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getStyle($alphas[$key]."1")->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);
$objPHPExcel->getActiveSheet()->getStyle($alphas[$key]."1")->applyFromArray($styleArray);
}
$col++;
foreach ( $items as $item){
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $col, $item->xname.' '.$item->xfamily);
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1,$col, $item->col1);
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $col,$item->col2);
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $col,$item->col3);
$col++;
}
$styleArray = array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
)
);
$excelRow = 2;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="user-report-'.$this->view->PersianDate(date("Y-m-d"), "%d", false).'.xls"');
$objWriter->save('php://output');
`