0
点赞
收藏
分享

微信扫一扫

PHP读和写Excel文件

黎轩的闲暇时光 2022-03-19 阅读 108
PHPExcel

  前面使用PHP操作Excel文件都是读数据进入数据库。

  今天晚上有个着急的任务是报表生成,需要读写Excel文件来生成指定的报表文件。

  也是胡乱折腾了好长时间才搞定,写这个PHPExcel的大神真是牛啊,让我们用起来这么简单和方便。

  总算是在规定的时间完成了任务。

<?php
require 'DawnEisLinkConfig.php';//加载数据库
require_once 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/IOFactory.php';
require_once 'Classes/PHPExcel/Reader/Excel5.php';

$excelFile = '20220318.xls';
$excelObj = PHPExcel_IOFactory::createReader('Excel5');
$excelObjPHP = $excelObj->load($excelFile);
$excelObjPHP->setActiveSheetIndex(8);//设置当前活动的工作表
$activeSheet = $excelObjPHP->getActiveSheet();//得到当前活动的表

//读函数
$getCellValue = function ($cellName) use ($activeSheet) {
return $activeSheet->getCell("$cellName")->getValue();
};
//写函数
$setCellValue = function ($cellName,$value) use ($activeSheet) {
return $activeSheet->setCellValue("$cellName",$value);;
};

$RowCount=281;//读取行最大值:$activeSheet->getHighestRow()
for ($i = 6; $i <= $RowCount; $i++) {
// $ZCBM=$activeSheet->getCell("C".$i)->getValue();
$ZCBM=$getCellValue("C".$i);//读取资产编码
echo '执行===第'.$i.'行 资产编码:'.$ZCBM.'<br>';
//实物与账目是否核对成功
$sql = "select count(*) from assets2022 where C01='$ZCBM'";
$result =$EisConn->query($sql);
$rows = $result->fetch();
$rowCount = $rows[0];
if ( $rowCount ) {
$sql = "select C23,C25,C26 from assets2022 where C01='$ZCBM'";
$res = $EisConn->query($sql);
$rows=$res->fetchAll(PDO::FETCH_ASSOC);
//提取数据
$nowUnit=trim($rows[0]['C23']);//保管单位
$nowKeeper=trim($rows[0]['C25']);//保管人
$nowPlace=trim($rows[0]['C26']);//保管地点
//盘盈标识
// $activeSheet->setCellValue('K'.$i,"+");
$setCellValue('K'.$i,"+");//盘盈标记
//资产现状
//...
//资产评价
//...
//存放地点
if($nowUnit=='' || $nowUnit==null){
$nowUnit=='不详';
}else{
if($nowPlace=='' || $nowPlace==null || $nowPlace=="不详" ){
$setCellValue('Y'.$i,$nowUnit);//存放地点
}else{
$K1=$nowUnit.' | '.$nowPlace;
$setCellValue('Y'.$i,$K1);//存放单位和具体地点
}
}
//使用人
if( !( $nowKeeper=='' || $nowKeeper==null || $nowKeeper=='不详' ) ){
$setCellValue('Z'.$i,$nowKeeper);//存放地点
}
}else{
//该资产无实物对账,盘亏,标识:盘亏符号
// $activeSheet->setCellValue('K'.$i,"-");
$setCellValue('K'.$i,"-");
}
}

$objWriter = PHPExcel_IOFactory::createWriter($excelObjPHP, 'Excel5');
$objWriter->save($excelFile);
echo '执行完毕!';
exit;
?>
举报

相关推荐

0 条评论