You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
7.7 KiB
PHP

<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
use think\Request;
class TbEpa1 extends Controller {
public function index() {
$edate = date("Y-m-d");
$sdate = date('Y-m-d', strtotime("$edate -1 month"));
if (!empty($_GET['stime'])) {
$sdate = $_GET['stime'];
}
if (!empty($_GET['etime'])) {
$edate = substr($_GET['etime'], 0, 10);
$edate = date("Y-m-d", strtotime("$edate +1 day"));
}
if (empty($_GET['id']))
die('无效的编号');
$id = $_GET['id'];
$warn = Db::table('warn_cfg')->where('eqmid', $id)->find();
session('warn', $warn);
$this->assign('warn', $warn);
$data = Db::table('data_epa_h')->field('d_Time,CH4ppm,C2H4ppm,C2H6ppm,C2H2ppm,H2ppm,O2ppm,N2ppm,COppm,CO2ppm,Mstppm,CmbuGas,TotalHydrocarbon')->where('eqmid', $id)->where('d_Time', 'between time', [$sdate, $edate])->order('d_Time desc')->paginate(10, false, ['query' => request()->param(),]);
$data1 = Db::table('data_epa_h')->field('d_Time,CH4ppm,C2H4ppm,C2H6ppm,C2H2ppm,H2ppm,O2ppm,N2ppm,COppm,CO2ppm,Mstppm,CmbuGas,TotalHydrocarbon')->where('eqmid', $id)->where('d_Time', 'between time', [$sdate, $edate])->select();
session('data', $data);
session('data1', $data1);
$this->assign('data', $data);
return $this->fetch('tb_epa1');
}
public function ExcelOne() {
$list = session('data');
$xlsCell = array(
array('d_Time', '时间'),
array('CH4ppm', '甲烷含量'),
array('C2H4ppm', '乙烯含量'),
array('C2H6ppm', '乙烷含量'),
array('C2H2ppm', '乙炔含量'),
array('H2ppm', '氢气含量'),
array('O2ppm', '氧气含量'),
array('N2ppm', '氮气含量'),
array('COppm', '一氧化碳含量'),
array('CO2ppm', '二氧化碳含量'),
array('Mstppm', '微水含量'),
array('CmbuGas', '总可燃气体'),
array('TotalHydrocarbon', '总烃')
);
$this->exportExcel("当前数据导出", $xlsCell, $list);
}
public function ExcelAll() {
$list = session('data1');
$xlsCell = array(
array('d_Time', '时间'),
array('CH4ppm', '甲烷含量'),
array('C2H4ppm', '乙烯含量'),
array('C2H6ppm', '乙烷含量'),
array('C2H2ppm', '乙炔含量'),
array('H2ppm', '氢气含量'),
array('O2ppm', '氧气含量'),
array('N2ppm', '氮气含量'),
array('COppm', '一氧化碳含量'),
array('CO2ppm', '二氧化碳含量'),
array('Mstppm', '微水含量'),
array('CmbuGas', '总可燃气体'),
array('TotalHydrocarbon', '总烃')
);
$this->exportExcel("全部数据导出", $xlsCell, $list);
}
public function exportExcel($expTitle, $expCellName, $expTableData) {
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);
$fileName = $expTitle . date('_YmdHis');
$cellNum = count($expCellName);
$dataNum = count($expTableData);
import('PhpExcel', EXTEND_PATH);
$objPHPExcel = new \PhpExcel();
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');
for ($i = 0; $i < $cellNum; $i++) {
$objPHPExcel->getActiveSheet(0)->getColumnDimension($cellName[$i])->setWidth(18);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '2', $expCellName[$i][1]);
}
for ($i = 0; $i < $dataNum; $i++) {
for ($j = 0; $j < $cellNum; $j++) {
if ($expTableData[$i]['CH4ppm'] < session('warn.warnmin1') || $expTableData[$i]['CH4ppm'] > session('warn.warnmax1')) {
$objPHPExcel->getActiveSheet(0)->getStyle('B' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['C2H4ppm'] < session('warn.warnmin2') || $expTableData[$i]['C2H4ppm'] > session('warn.warnmax2')) {
$objPHPExcel->getActiveSheet(0)->getStyle('C' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['C2H6ppm'] < session('warn.warnmin3') || $expTableData[$i]['C2H6ppm'] > session('warn.warnmax3')) {
$objPHPExcel->getActiveSheet(0)->getStyle('D' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['C2H2ppm'] < session('warn.warnmin4') || $expTableData[$i]['C2H2ppm'] > session('warn.warnmax4')) {
$objPHPExcel->getActiveSheet(0)->getStyle('E' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['H2ppm'] < session('warn.warnmin5') || $expTableData[$i]['H2ppm'] > session('warn.warnmax5')) {
$objPHPExcel->getActiveSheet(0)->getStyle('F' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['O2ppm'] < session('warn.warnmin6') || $expTableData[$i]['O2ppm'] > session('warn.warnmax6')) {
$objPHPExcel->getActiveSheet(0)->getStyle('G' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['N2ppm'] < session('warn.warnmin7') || $expTableData[$i]['N2ppm'] > session('warn.warnmax7')) {
$objPHPExcel->getActiveSheet(0)->getStyle('H' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['COppm'] < session('warn.warnmin8') || $expTableData[$i]['COppm'] > session('warn.warnmax8')) {
$objPHPExcel->getActiveSheet(0)->getStyle('I' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['CO2ppm'] < session('warn.warnmin9') || $expTableData[$i]['CO2ppm'] > session('warn.warnmax9')) {
$objPHPExcel->getActiveSheet(0)->getStyle('J' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['Mstppm'] < session('warn.warnmin10') || $expTableData[$i]['Mstppm'] > session('warn.warnmax10')) {
$objPHPExcel->getActiveSheet(0)->getStyle('K' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['CmbuGas'] < session('warn.warnmin11') || $expTableData[$i]['CmbuGas'] > session('warn.warnmax11')) {
$objPHPExcel->getActiveSheet(0)->getStyle('L' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
if ($expTableData[$i]['TotalHydrocarbon'] < session('warn.warnmin12') || $expTableData[$i]['TotalHydrocarbon'] > session('warn.warnmax12')) {
$objPHPExcel->getActiveSheet(0)->getStyle('M' . ($i + 3))->getFont()->getColor()->setARGB('FFFF0000');
}
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 3), $expTableData[$i][$expCellName[$j][0]]);
}
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $xlsTitle . '.xls"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
exit;
}
}