최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

   php-excel-reader 를 적용해보자


한글이 깨지지않게 띄우느라 몇시간 동안 무진장 고생했다. 


코어소스를 고쳐서 해결했었으나 2.23버전을 적용하니 결국 정상적으로 출력된다..(원인은 버전문제 - 버전업되서 해결됨이 확실)


다른 비슷한 형태의 라이브러리도 몇 개 있었지만 결과적으로 'php-excel-reader-2.23' 버전을 고집하는 이유는 다음과 같다.


1. 기본적으로 인스턴스를 생성하여 $data->dump(true,true); 만 써줘도 엑셀과 같은형태로 스타일시트가 적용되어


  그모습 그대로 보여준다. 


2. 출력이 제대로 되었는지 한눈에 보기쉽게 파악할 수 있다.


3. 출력용도로 해당 라이브러리를 적용했을 경우 만들어진 DOM에 id나 class를 부여해서 얼마든지 프론트엔드의 가공이 가능하다.


* 만약 2.23버전 미만일 경우 'htmlentities'메서드를 찾아서 주석처리 하길 바란다.

 

  htmlentities : html의 태그를 '&'와 같이 전부 엔티티로 인코딩한다. 반대로 디코딩 할때는 html_entity_decode()를 사용한다.




   엑셀과 소스


기본적인 인스턴스 생성방법과


숫자형으로 엑셀데이터 접근


문자열로 column에 접근


다른시트선택


시트에서 row와 col의 조회


해당 css style을 반환(문자열)하는 방법을 알아보자 이정도만 알면 뭐 전부 사용할 듯 하다.




<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once 'excel_reader2.php';
$data = new Spreadsheet_Excel_Reader();
$data->read("example.xls");
?>

<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<style>
table.excel {
	border-style:ridge;
	border-width:1;
	border-collapse:collapse;
	font-family:sans-serif;
	font-size:12px;
}
table.excel thead th, table.excel tbody th {
	background:#CCCCCC;
	border-style:ridge;
	border-width:1;
	text-align: center;
	vertical-align:bottom;
}
table.excel tbody th {
	text-align:center;
	width:20px;
}
table.excel tbody td {
	vertical-align:bottom;
}
table.excel tbody td {
    padding: 0 3px;
	border: 1px solid #EEEEEE;
}
</style>
</head>

<body>
<?php echo $data->dump(true,true); ?>

<?php 
	//숫자형으로 접근
	$row = 24;
	$col = 6;
	$result = $data->val($row,$col);
	echo $result ."<br />";

	//문자열 column으로 접근
	$row = 24;
	$col = 'E';
	echo $data->val($row,$col)."<br />";

	//다른시트선택
	$row = 15;
	$col = 'A';
	$sheet_index = 0;
	echo $data->val($row,$col,$sheet_index)."<br />";
	
	//시트에서 row와 col의 갯수조회
	echo $data->rowcount($sheet_index=0)."<br />";
	echo $data->colcount($sheet_index=0)."<br />";
	
	//css style
	echo $data->style(19,'A',$sheet=0)."<br />";
?>
</body>
</html>


   결과


하단에 분홍색 부분이 소스코드 출력문의 결과이다.



돋움
12 point
Wednesday, December 31, 2008
44
10
font-family:Arial;font-size:11px;background-color:#FF0000;color:#000000;

'■ 백엔드 ■ > PHP' 카테고리의 다른 글

2. 개발 툴 설치  (0) 2014.02.12
1. APM 설치  (0) 2014.02.11
php-excel-reader Document  (0) 2014.02.04
php oop의 기본3  (0) 2014.02.02
php oop의 기본2  (0) 2014.02.02
댓글