PHP实现导出带样式的Excel

前端之家收集整理的这篇文章主要介绍了PHP实现导出带样式的Excel前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

工作中做导出的时候,需要导出自定义的表格或嫌弃导出的Excel格式太难看了。

需要设置颜色、字号大小、加粗、合并单元格等等。

效果图:

PHP代码

display(); }

HTML代码

<Meta http-equiv=Content-Type content="text/html; charset=utf-8"> <Meta name=Generator content="Microsoft Excel 11"> 成绩单

我们再来看一个更方便的组件

在这里需要用到PEAR的两个软件包 Spreadsheet Excel Writer 和 OLE,如果没有可以分别从 下载,解压放在PEAR目录下。

全部代码如下:

PHP;"> /* 准备导出的数据 /
$head = 'One Week Schedule';
$data = array('Monday' => array( array('time' => '09:00','event' => '公司例会例会'),array('time' => '14:00','event' => '部门例会')
),'Tuesday' => array( array('time' => '09:30','event' => '和 Mr. Stinsen 早餐')),'Wednesday' => array(array('time' => '12:10','event' => '市场中阶报告'),array('time' => '15:30','event' => '市场部战略部署会议') ),'Thursday' => array( array('time' => '','event' => '')),'Friday' => array( array('time' => '16:00','event' => 'WoC Stock 研讨会'),array('time' => '17:00','event' => '飞往华尔街'),array('time' => '21:00','event' => '会见克林顿'))
);
/
*/

$workbook = new Spreadsheet_Excel_Writer();
$filename = date('YmdHis').'.xls';//csv
$workbook->send($filename); // 发送 Excel 文件名供下载
$workbook->setVersion( 8 );

$sheet = &$workbook->addWorksheet("Sheet1"); // 创建工作表
$sheet->setInputEncoding('utf-8'); // 字符集
$headFormat = &$workbook->addFormat(array('Size' => 14,'Align' => 'center','Color' => 'white','FgColor' => 'brown','Bold'=>'1','Border' => '1'));//定义格式
$dayFormat = &$workbook->addFormat(array('Size' => 12,'VAlign' => 'vcenter','FgColor' => 'green','Border' => '1'));//定义格式
$dataFormat = &$workbook->addFormat(array('Size' => 10,'Align' => 'left','Border' => '1','Color' => 'black','FgColor'=> 'cyan'));//定义格式

$sheet->setColumn(0,20); // 设置宽度
$sheet->setColumn(1,1,15); // 设置宽度
$sheet->setColumn(2,2,30); // 设置宽度

$r = 0;
$sheet->write(0,$r,$head,$headFormat); // 表格标题
$sheet->mergeCells(0,2); // 跨列显示

$r++; // 数据从第2行开始
foreach ($data as $day => $events){
$c = 0;
$sheet->write($r,$c,$day,$dayFormat);
if (!$events){
// 当天没有计划
$r++;
} else {
$startRow = $r;
foreach ($events as $e){
$c = 1;
$sheet->write($r,$c++,$e['time'],$dataFormat); // 工作表写入数据
$sheet->write($r,$e['event'],$dataFormat); // 工作表写入数据
$r++;
}
// 合并 $day 单元格
$sheet->mergeCells($startRow,$r - 1,0);
}
}
$workbook->close(); // 完成下载
?>

原文链接:https://www.f2er.com/php/19104.html

猜你在找的PHP相关文章