db에 있는 데이터를 엑셀로 뽑아야하는 경우가 있어 구글링하면서 나름대로 방법을 찾아봤습니다.
style 속성을 통해 셀의 배경색, 높이, 넓이 등 스타일을 지정해 줄수도 있습니다. 이미지 위치조정을 위해서 margin이나 left 사용해 봤는데 적용되지 않았습니다.
<?php include 'wp-config.php'; $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); $query = $mysqli->query("SELECT * FROM `wp_posts`"); header("Content-Type: application/xls"); header("Content-Disposition: attachment; filename=file.xls"); header("Pragma: no-cache"); header("Expires: 0"); ?> <table> <thead> <tr> <th>이미지</th> <th>제목</th> <th>날짜</th> </tr> </thead> <tbody> <?php for ($i=0; $row = $query->fetch_array(MYSQLI_ASSOC); $i++) { ?> <tr> <td style="width:100px; height: 100px;"><img src="http://placehold.it/100x100" alt=""></td> <td><?php echo $row['post_title'];?></td> <td><?php echo $row['post_date'];?></td> </tr> <?php } ?> </tbody> </table>
한글이 깨지는 경우 header값을 수정하고 utf-8 BOM 객체를 생성합니다.
<?php header('Content-Encoding: UTF-8'); header("Content-Type: application/xls; charset=UTF-8"); header("Content-Disposition: attachment; filename=file.xls"); header("Pragma: no-cache"); header("Expires: 0"); echo "\xEF\xBB\xBF"; // UTF-8 BOM ?>