반응형
직원당 출석 기록을 표시하는 SQL 쿼리가 있으므로 지금 원하는 것은 Excel 보고서를 생성하는 것이지만 phpexcel이 어떻게 작동하는지 실제로 이해하지 못하며 크리스탈 보고서와 같은 끌어서 놓기보고 도구에서도 사용했습니다. 누군가가 phpexcel에서 만드는 데 도움이 될 수 있습니까? 다음은 mysql 데이터베이스의 전체 코드입니다.
try{
$con = new PDO("mysql:host=$host;dbname=$db",$user,$pass);
$con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$con->exec('SET NAMES "utf8"');
}
catch(PDOException $e){
echo $e->getMessage();
exit();
}
//print first employee table
try{
$query = $con->prepare("SELECT * FROM emptb WHERE Department = :dept AND SectionName = :section AND LineName = :line ORDER BY id ASC");
$query->bindParam(':dept',$dept);
$query->bindParam(':section',$section);
$query->bindParam(':line',$line);
$query->execute();
}
catch(PDOException $e){
echo $e->getMessage();
exit();
}
while($row = $query->fetch())
{
echo <<<_END
ID: <input type='text' value='$row[EmpID]' readonly='readonly'/> Employee: <input type='text' value='$row[Lastname], $row[Firstname]' readonly='readonly'/> <p/>
Section: <input type='text' value='$row[SectionName]' readonly='readonly'/> Line: <input type='text' value='$row[LineName]' readonly='readonly'/><p/>
_END;
try{
$qry = $con->prepare("SELECT * FROM attendance WHERE EmpID = :id AND ValidDate BETWEEN DATE('2015-08-01') AND DATE('2015-08-30') GROUP BY ValidDate ORDER BY ValidDate ASC");
$qry->bindParam(':id',$row['EmpID']);
$qry->execute();
}
catch(PDOException $e){
echo $e->getMessage();
exit();
}
echo "<table>";
while($subrow = $qry->fetch())
{
echo <<<_END
<tr>
<td>$subrow[ValidDate]</td>
<td>$subrow[TimeIn]</td>
<td>$subrow[LunchOut]</td>
<td>$subrow[LunchIn]</td>
<td>$subrow[TimeOut]</td>
</tr>
_END;
}
echo "</table>";
}
해결 방법
당신은 교체해야합니다
echo "<table>";
while($subrow = $qry->fetch())
{
echo <<<_END
<tr>
<td>$subrow[ValidDate]</td>
<td>$subrow[TimeIn]</td>
<td>$subrow[LunchOut]</td>
<td>$subrow[LunchIn]</td>
<td>$subrow[TimeOut]</td>
</tr>
_END;
}
echo "</table>";
다음과 같이
$objPHPExcel = new PHPExcel();
$row = 1;
while($subrow = $qry->fetch())
{
$objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $subrow['ValidDate']);
$objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $subrow['TimeIn']);
$objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $subrow['LunchOut']);
$objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $subrow['LunchIn']);
$objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $subrow['TimeOut']);
$row++;
}
$excelWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('myFileName.xlsx');
날짜 / 시간을 MS Excel 직렬화 된 타임 스탬프로 변환하고 형식 마스크를 적용하기 위해 약간의 작업이 필요할 수 있지만 이것이 PHPExcel을 사용하여 데이터베이스 쿼리에서 Excel 파일을 만드는 기본 사항입니다.
참조 페이지 https://stackoverflow.com/questions/32964501
반응형
'MySql' 카테고리의 다른 글
MySQL 외래 키는 어디에 저장해야합니까? (0) | 2020.11.16 |
---|---|
MySQL How can I implement commit/rollback for MySQL in PHP? (0) | 2020.11.16 |
MySQL PHP에서 총 가격을 계산하는 방법 (0) | 2020.11.16 |
MySQL Entity Framework를 사용하여 암호화 된 열 (0) | 2020.11.16 |
MySQL Python을 통해 XAMPP mysql에 액세스 (0) | 2020.11.16 |
댓글