|
|
|
ขอถามเรื่องการออกรายงาน PHP เป็น excel ครับผม Code ออกรายงาน excel header("Content-Type: application/vnd.ms-excel; name='excel';charset='utf-8' "); |
|
|
|
|
|
|
|
Code ออกรายงาน excel
<?
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Type: application/vnd.ms-excel; name='excel';charset='utf-8' ");
header("Content-disposition: attachment; filename=list.xls");//ชื่อไฟล์ที่นี่ #1
require_once "config.php";
require_once "authen.php";
require_once CLASS_BASE."main.class.php";
$main=new mainClass();
$result = $main->Query($_SESSION[$_GET['param']]);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<table width="118%" align="center" border="0" cellspacing="1" cellpadding="5" class="bg_list" >
<tr height="29px" bgcolor="#BBBBBB">
<td align="center" colspan="8">รายงาน</td>
</tr>
<tr height="29px" bgcolor="#bf95cd">
<td align="center" width="10%">รหัสมิเตอร์</td>
<td align="center" width="12%">วันที่ติดตั้ง</td>
<td align="center" width="12%">วันที่ถอดถอน</td>
<td align="center" width="15%">ระยะเวลาที่ปลดระวาง</td>
<td align="center" width="5%">เฟส</td>
<td align="center" width="5%">สาย</td>
<td align="center" width="24%">ติดตั้ง</td>
<td align="center" width="17%">ชนิด</td>
</tr>
<?
for($j = 0 ;$j < $result['count'] ; $j++ ){
$class=($class=="cwm-odd")? "cwm-even" : "cwm-odd" ;
$sqltumbon = "select TUMBON_NAME from gm_tumbon where TUMBON_ID = '".$result[$j]['TUMBON_ID']."' ";
$t = $main->Query($sqltumbon);
$sqlmoo = "select MOO_TEE from gm_moo where MOO_ID = '".$result[$j]['MOO_ID']."' and TUMBON_ID = '".$result[$j]['TUMBON_ID']."' ";
$moo = $main->Query($sqlmoo);
$sqle = "select TYPE_ELECTRICAL_NAME from gm_type_electrical where TYPE_ELECTRICAL_ID = '".$result[$j]['TYPE_ELECTRICAL_ID']."'";
$ele = $main->Query($sqle);
?>
<tr class="<?=$class?>" valign="top">
<td align="center" height="30"><?=$result[$j]['METER_ID']?></td>
<td align="center" height="30"><?=$main->convertDate($result[$j]['METER_DATE'],"-")?></td>
<td align="center" height="30"><?=$main->convertDate($result[$j]['METER_DISCHARGE'],"-")?></td>
<td align="center" height="30"><?=$main->datediff(date("Y-m-d"),$result[$j]['METER_DISCHARGE'])." "?>วัน </td>
<td align="center"><?=$result[$j]['METER_PHASE']?></td>
<td align="center"><?=$result[$j]['METER_SEAY']?></td>
<td align="center" height="30"><?=$result[$j]['LOCATION_ADDRESS']." "."หมู่"." ".$moo[0]['MOO_TEE']." "."ถนน"." ".$result[$j]['LOCATION_ROAD']?> <?="ตำบล"." ".$t[0]['TUMBON_NAME']." "."อำเภอ"." "."ร้องกวาง"?>
<br>
<label>จังหวัด แพร่ 54140</label>
</td>
<td align="center" height="30"><?=$ele[$j]['TYPE_ELECTRICAL_NAME']?></td>
</tr>
<?}?>
</table>
</body>
</html>
convertDate
function convertDate($date="",$str="-"){
$tmp_=explode(' ',$date);
$date=$tmp_[0];
if($date=="" || $date== "0000-00-00")return "";
$tmp = explode($str,$date);
if($tmp[2] > 2500)$tmp[2]-=543;
if($tmp[0] < 2500)$tmp[0]+=543;
$d= $tmp[2];
$m= $tmp[1];
if($d[0]!=0){
$date= $d[0].$d[1];
}
else{
$date= $d[1];
}
if($m[0]!=0){
$strMonth= $m[0].$m[1];
}
else{
$strMonth= $m[1];
}
$strMonthCut = Array("","มกราคม","กุมภาพันธุ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤษจิกายน","ธันวาคม");
$month=$strMonthCut[$strMonth];
if($tmp_[1]){
$n='น.';
}
else{
$n='';
}
return $date." ".$month." ".$tmp[0]." ".$tmp_[1]." ".$n;
}
ผมมีคำถาม 3 ข้อครับ
1.เมื่อผมทำการออกรายงาน ตรงส่วน convertDate ถ้าข้อมูลที่ convert เป็นเดือนกุมภาพันธ์ จะแสดงข้อมูลออกมาเป็น 1 กุมภาพันธ์ 2553 แต่ถ้าเป็นเดือนอื่น จะแสดงออกมาเป็น 1-มิ.ย.-53
ผมจะแก้ยังไงให้การแสดงผลเหมือนเดือน กุมภาพันธ์ครับ
2.ผมจะออกรายงานหมายเลขบัตรประชาชน 13 หลัก เช่น 1537700273170 แต่ผลที่ออกมาใน excel ได้ 1.5377E+12 ต้องแก้ยังไงครับ
3.ถาออกรายงานที่มีเลข 0 อยู่ข้างหน้า มันจะตัด 0 ออกหมดเลย เช่น 00001 ถ้าออกเป็น excel จะออกเป็น 1 ตัวเดียวครับ ต้องแก้ยังไงครับ
ปล.ถ้าแก้ข้อ 2 ได้ก็จะแก้ข้อ 3 ได้ใช่มั้ยครับ ขอบคุณครับ
Tag : - - - -
|
|
|
|
|
|
Date :
2010-06-30 10:11:11 |
By :
exdo |
View :
3400 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณพี่วินมากๆครับ สุดยอดดดดดดดดดดดดดดดดดดดด
|
|
|
|
|
Date :
2010-06-30 13:55:02 |
By :
exdo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ของผมก็ใส่ header("Content-Type: application/vnd.ms-excel; name='excel';charset='utf-8' ");
ลองเปลี่ยนเป็น tis-620 แล้วก็ยังไม่ได้ครับ
แต่ข้อมูลที่มีอยู่ใน database ไม่เป็นภาษาไทย แก้ไขตรงไหนเหรอครับ มันจะขึ้น ????? แทน เลยงงๆ
|
|
|
|
|
Date :
2013-12-18 02:21:39 |
By :
เด็กit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 ปี ผ่านไปไวเหมือนโกหก คุณGuest ตั้งกระทุ้ใหม่ดีกว่า (ดู พ.ศ. ก่อนโพสต์สักนิดนะ)
แล้วไอ้ปัญหา ภาษาไทย ออกเป็น ???? หาดีดีก็เจอแล้วครับ คนละเรื่องกันกับกระทู้นี้ครับ
|
ประวัติการแก้ไข 2013-12-18 09:51:38
|
|
|
|
Date :
2013-12-18 09:50:40 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 ปี ฮ่าๆๆๆ
|
|
|
|
|
Date :
2013-12-18 10:12:43 |
By :
kitisak053 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|