PHPExcel 'ZipArchive' 错误

认真为自己 2017-11-27 03:01:06
HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../../js/lib/jquery/jquery-1.7.2.min.js"></script>
</head>
<body>
<div>
<form action="./cs.php?type=report" method="post">
<input type="submit" id="excel_report" value="导入"/>
</form>
</div>
<script>
(function() {
})();
</script>
</body>
</html>

PHP
  

/*
* PHPExcel.php 使用PHPExcel完成文件的导出下载和导入操作
* @author zyb_icanplay7 <zyb_icanplay@163.com>
*/
$operation = $_GET['type'];
switch ( $operation ) {
case 'report':
//路径按自己项目实际路径修改,文件请到PHPExcel官网下载
include_once './PHPExcel/PHPExcel.php';
include_once './PHPExcel/PHPExcel/Writer/Excel2007.php';
//或者include 'PHPExcel/Writer/Excel5.php'; 用于输出.xls的
//创建一个excel
$objPHPExcel = new PHPExcel();
//保存excel—2007格式
$objWriter = new PHPExcel_Writer_Excel2007( $objPHPExcel );
//或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式
//
//设置excel的属性:
//创建人
$objPHPExcel->getProperties()->setCreator( "ZYB" );
//最后修改人
$objPHPExcel->getProperties()->setLastModifiedBy( "ZYB" );
//标题
$objPHPExcel->getProperties()->setTitle( "Office 2007 XLSX Test Document" );
//题目
$objPHPExcel->getProperties()->setSubject( "Office 2007 XLSX Test Document" );
//描述
$objPHPExcel->getProperties()->setDescription( "Test document for Office 2007 XLSX, generated using PHP classes." );
//关键字
$objPHPExcel->getProperties()->setKeywords( "office 2007 openxml php" );
//种类
$objPHPExcel->getProperties()->setCategory( "Test result file" );
//
//设置当前的sheet
$objPHPExcel->setActiveSheetIndex( 0 );
//设置sheet的name
$objPHPExcel->getActiveSheet()->setTitle( '导出表测试' );
//设置单元格的值
$subTitle = array( '账号', '姓名', '性别', '地址', '电话', '事由', '复读' );
$datas = array(
0 => array( 'ZhangSan', '张三', '男', '广东', '1232323443', '实得分', 1 ),
1 => array( 'ZhangSan2', '张三2', '男', '广东2', '13454444433', '实得分2', 2 ),
);
$colspan = range( 'A', 'G' );
$count = count( $subTitle );
// 标题输出
for ( $index = 0; $index < $count; $index++ ) {
$col = $colspan[$index];
$objPHPExcel->getActiveSheet()->setCellValue( $col . '1', $subTitle[$index] );
//设置font
$objPHPExcel->getActiveSheet()->getStyle( $col . '1' )->getFont()->setName( 'Candara' );
$objPHPExcel->getActiveSheet()->getStyle( $col . '1' )->getFont()->setSize( 15 );
$objPHPExcel->getActiveSheet()->getStyle( $col . '1' )->getFont()->setBold( true );
$objPHPExcel->getActiveSheet()->getStyle( $col . '1' )->getFont()->getColor()
->setARGB( PHPExcel_Style_Color::COLOR_WHITE );

//设置填充色彩
$objPHPExcel->getActiveSheet()->getStyle( $col . '1' )->getFill()
->setFillType( PHPExcel_Style_Fill::FILL_SOLID );
$objPHPExcel->getActiveSheet()->getStyle( $col . '1' )->getFill()->getStartColor()->setARGB( 'FF808080' );
// align 设置居中
$objPHPExcel->getActiveSheet()->getStyle( $col . '1' )->getAlignment()
->setHorizontal( PHPExcel_Style_Alignment::HORIZONTAL_CENTER );
if ( $subTitle[$index] == '电话' ) {
// 设置宽度
$objPHPExcel->getActiveSheet()->getColumnDimension( $col )->setWidth( 40 );
}
}
// 内容输出
foreach ( $datas as $key => $value ) {
$colNumber = $key + 2; //第二行开始才是内容
foreach ( $colspan as $colKey => $col ) {
$objPHPExcel->getActiveSheet()->setCellValue( $col . $colNumber, $value[$colKey] );
}
}
//
//在默认sheet后,创建一个worksheet

$objPHPExcel->createSheet();
$fileName = "xxx.xlsx";
$objWriter->save( $fileName );
download( $fileName, true );
break;
}

//=============================================================================================
function download( $fileName, $delDesFile = false, $isExit = true ) {
if ( file_exists( $fileName ) ) {
header( 'Content-Description: File Transfer' );
header( 'Content-Type: application/octet-stream' );
header( 'Content-Disposition: attachment;filename = ' . basename( $fileName ) );
header( 'Content-Transfer-Encoding: binary' );
header( 'Expires: 0' );
header( 'Cache-Control: must-revalidate, post-check = 0, pre-check = 0' );
header( 'Pragma: public' );
header( 'Content-Length: ' . filesize( $fileName ) );
ob_clean();
flush();
readfile( $fileName );
if ( $delDesFile ) {
unlink( $fileName );
}
if ( $isExit ) {
exit;
}
}
}



1.文件路径无问题
2 php.ini 文件zip.前面的 ; (分号)已去掉
3. zlib.output_compression = Off 已改为 zlib.output_compression = On
4.ext文件夹下存在php_zip.dll
5.服务已重启


执行程序还是提示:
Fatal error: Class 'ZipArchive' not found in D:\AppServ\www\web opb5\PHPExcel\PHPExcel\Writer\Excel2007.php on line 220
...全文
523 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
老虎爱代码 2017-11-29
  • 打赏
  • 举报
回复
更换php_zip.dll版本,或者升级php的版本
xuzuning 2017-11-28
  • 打赏
  • 举报
回复
zip 扩展自 php5.3 起就已经内置了,你说有 php_zip.dll,显然你的 php 的 版本太低了。
认真为自己 2017-11-28
  • 打赏
  • 举报
回复
有遇到的么?

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧