Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ถามเรื่องการ Export รายงาน เป็น Excel ใน Column ที่ข้อมูลเป็น ตัวเลข



 

ถามเรื่องการ Export รายงาน เป็น Excel ใน Column ที่ข้อมูลเป็น ตัวเลข

 



Topic : 049129



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์




คือ ผม Export รายงานให้เป็นในรูปแบบของ Excel

แต่ติดที่ ตรง Column ที่เป็นตัวเลข หากดึงออกมาตามปกติ $worksheet->write("B$xlsRow",$result["PDCode"], $xlsCellDesc); ตัวเลขที่ขึ้นต้นด้วย 0 จะถูกตั้ดทิ้งไป เช่น 00142 จะขึ้นแค่ 142 หรือ 00000 จะขึ้น 0 ม แต่หากเป็น 52035 หรือ rode-set001 ไม่มีปัญหาอะไร

ที่นี้ ผมลองเพิ่มเข้าไป >> $worksheet->write("B$xlsRow","\r".$result["PDCode"], $xlsCellDesc); Output สามารถออกได้ตามปกติ ไม่ว่าจะเป็น 00142 หรือ 00000 หรือ 52035 หรือ rode-set001 แต่ เมื่อนำมาทำ VLOOKUP จะไม่สามารถทำได้ เนื่องจากมันเหมือนมีช่องว่างอยู่ข้างหน้าตัวเลข

จึงอยากถามว่า มีวิธีการ ทำให้เลข 0 สามารถโชว์ได้ตามปกติ ไม่ถูกตัดใน Excel นอกจากการใส่ "\r" อีกไหมครับ เพราะ ใส่ "\r" และมันเหมือนมีช่องว่างอยู่ข้างหน้า

หรือมีวิธีการ Set Column (Format Cells..) ให้เป็น text หรือ string ไหมครับ

ช่วยผมทีนะครับ ขอบคุณมากๆครับ



Tag : PHP, MySQL, CakePHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-09-21 17:16:22 By : muaeenth99 View : 1946 Reply : 8
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ใส่ ' ข้างหน้าครับ แต่มันน่าจะมีวิธีที่ถูกต้องกว่านี้ครับ หาเจอแล้วเดียวจะมาบอกครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-21 17:26:54 By : webmaster
 


 

No. 2



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


ใส่ ' ข้างหน้าแล้ว มัน error อะครับ ไม่ทราบว่า ต้องใส่ตรงไหน ของ $worksheet->write("B$xlsRow",$result["PDCode"], $xlsCellDesc);

** ผมใส่ ' ตรง $worksheet->write("B$xlsRow",'$result["PDCode"], $xlsCellDesc); ด้านหน้า $result นะครับ ที่ error แล้วก็ ลองย้ายทุกที่แล้วก็ error ตลอดเลยอะครับ

ขอบคุณมากๆนครับ


ประวัติการแก้ไข
2010-09-21 17:40:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-21 17:32:13 By : muaeenth99
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เมื่อก่อนเคยใช้ .value = " '0123456 ";

แต่อ่านใน Manual เมื่อกี่สามารถใช้ .value = " =Text( '0123456', '0' )"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-21 17:34:26 By : webmaster
 


 

No. 4



โพสกระทู้ ( 93 )
บทความ ( 0 )



สถานะออฟไลน์


ลองใส่ (string) ไปข้างหน้า
$worksheet->write("B$xlsRow",(string) $result["PDCode"], $xlsCellDesc);
ไ่ม่รู้ได้อ่ะป่าว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-21 17:36:09 By : petch.it24
 


 

No. 5



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ใช้ .WrapText แทน .value ครับ

เช่น ("D1:D1")->WrapText = "0123456";



Go to : PHP Excel (Excel.Application) : การใช้งาน PHP กับ Microsoft Excel
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-21 17:40:17 By : webmaster
 


 

No. 6



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Quote:
$worksheet->write("B$xlsRow",$result["PDCode"], $xlsCellDesc);



เปลี่ยนเป็น

Code (PHP)
$worksheet->write("B$xlsRow","'".$result["PDCode"], $xlsCellDesc); 

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-21 17:42:18 By : webmaster
 


 

No. 7



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


ขอโทดทีนะครับ ที่ไม่ได้เอา Code ให้ดู ขอโทดจริงๆครับ
Code (PHP)
<?
require_once "class/class.writeexcel_workbook.inc.php";
require_once "class/class.writeexcel_worksheet.inc.php";
include("connect.php");
$sdate=$_POST["sdate"];//2010-05-05
				$nsdate=$_POST["sdate"];
				$nsy=substr($nsdate,0,4);
				$nsm=substr($nsdate,5,2);
				$nsd=substr($nsdate,8,2);
				$nsdate=$nsd."/".$nsm."/".$nsy;
$edate=$_POST["edate"];
				$nedate=$_POST["edate"];
				$ney=substr($nedate,0,4);
				$nem=substr($nedate,5,2);
				$ned=substr($nedate,8,2);
				$nedate=$ned."/".$nem."/".$ney;
$outcode=$_POST["outcode"];

		 $sqloutname="select * from outlet where outcode='$outcode'";
		 $queryoutname=mysql_query($sqloutname);
		 $rows=mysql_fetch_array($queryoutname);
$token = md5(uniqid(rand(), true)); 
$fname= "Report.xls";
$workbook =& new writeexcel_workbook($fname);

$worksheet =& $workbook->addworksheet("รายงานการขาย");
$worksheet->set_margin_right(0.50);
$worksheet->set_margin_bottom(1.10);

## Set Format ##

$xlscelldesc_header =& $workbook->addformat();

$xlscelldesc_header->set_font('Angsana New');

$xlscelldesc_header->set_size(14);

$xlscelldesc_header->set_color('blue');

$xlscelldesc_header->set_bold(1);

$xlscelldesc_header->set_text_v_align(1);

$xlscelldesc_header->set_merge(1);

$xlsCellDesc =& $workbook->addformat();

$xlsCellDesc->set_font('Angsana New');

$xlsCellDesc->set_size(12);

$xlsCellDesc->set_color('black');

//$xlsCellDesc->set_bor(1);

$xlsCellDesc->set_align('left');

$xlsCellDesc->set_text_v_align(1);

## End of Set Format ##



## Set Column Width & Height กำหนดความกว้างของ Cell

$worksheet->set_column('A:A', 6.5);
$worksheet->set_column('B:B', 7.6 );
$worksheet->set_column('C:C', 5);
$worksheet->set_column('D:D', 5);
$worksheet->set_column('E:E', 12);
$worksheet->set_column('F:F', 12);
$worksheet->set_column('G:G', 12);
$worksheet->set_column('H:H', 12);
$worksheet->set_column('I:I', 15);
$worksheet->set_column('J:J', 8.5);
$worksheet->set_column('K:K', 9);
$worksheet->set_column('L:L', 10);
$worksheet->set_column('M:M', 12);
$worksheet->set_column('N:N', 13);
$worksheet->set_column('O:O', 13);


$celldesc_h = 16.50;


## Writing Data เพิ่มข้อมูลลงใน Cell



# กำหนดความสูงของ Cell

$worksheet->set_row(1, $celldesc_h); 

$worksheet->set_row(2, $celldesc_h);

$worksheet->set_row(3, $celldesc_h);

$worksheet->set_row(4, $celldesc_h);

$worksheet->set_row(5, $celldesc_h);




$worksheet->write(G3, " รายงานการขายประจำวันที่ :    ".$nsdate. "      ถึงวันที่       ".$nedate."        ห้าง      ".$rows["OutName"], $xlscelldesc_header);
$worksheet->write_blank(F6,$xlscelldesc_header);


$worksheet->write(A5,"วันที่", $xlscelldesc_header); 

$worksheet->write(B5,"รหัสสินค้า", $xlscelldesc_header); 

$worksheet->write(C5,"ชื่อสินค้า", $xlscelldesc_header); 

$worksheet->write(D5,"จำนวน", $xlscelldesc_header);

$worksheet->write(E5,"ราคาขายปลีกต่อชิ้น", $xlscelldesc_header);

$worksheet->write(F5,"ส่วนลดต่อชิ้น (บาท)", $xlscelldesc_header);

$worksheet->write(G5,"ราคาเก็บเงินต่อชิ้น", $xlscelldesc_header);

$worksheet->write(H5,"จำนวนเงินรวมที่เก็บได้", $xlscelldesc_header);

$worksheet->write(I5,"ส่วนลดการค้า", $xlscelldesc_header);

$worksheet->write(J5,"ส่วนลด (%)", $xlscelldesc_header);

$worksheet->write(K5,"ส่วนลดคูปอง (%)", $xlscelldesc_header);
$worksheet->write(L5,"ส่วนลดคูปอง ( บาท )", $xlscelldesc_header);
$worksheet->write(M5,"หมายเหตุ", $xlscelldesc_header);
$worksheet->write(N5,"รหัสจุดขาย", $xlscelldesc_header);
$worksheet->write(O5,"ชื่อจุดขาย", $xlscelldesc_header);
$worksheet->write(P5,"วันที่บันทึก", $xlscelldesc_header);
$worksheet->write(Q5,"PC", $xlscelldesc_header);




//$worksheet->write_blank(E6,$xlscelldesc_header);

//$worksheet->write(F6,"$price ", $xlscelldesc_header);

$xlsRow = 6;



# ตรงนี้คือดึงข้อมูลจาก mysql มาใส่ใน Cell
if($outcode=="0000000"){

$sql="select * 
from  saler  s 
inner join  outlet o on (s.outcode=o.outcode) 
inner join user u on (s.user_name=u.user_name) 
inner join product p on (p.pdcode = s.pdcode)
inner join discount d ON (d.discode = s.discode)
where onsale between '$sdate' and '$edate' 
order by s.onsale,s.discode,s.pdcode asc "; 

}else{

$sql="select * 
from  saler  s 
inner join  outlet o on (s.outcode=o.outcode) 
inner join user u on (s.user_name=u.user_name) 
inner join product p on (p.pdcode = s.pdcode)
inner join discount d ON (d.discode = s.discode)
where onsale between '$sdate' and '$edate' 
and   o.outcode='$outcode'
order by s.onsale,s.discode,s.pdcode asc ";

}


$query=mysql_query($sql);
$num=mysql_num_rows($query);
if($num==0){
echo "<script language='javascript'>alert('ไม่พบข้อมูล');</script>";    
print "<meta http-equiv=refresh content=0;URL=admin_1.php>"; 

exit();
}else{

				while($result= mysql_fetch_array($query)){
				$ndate=$result["Onsale"];//2010-03-01
				$y=substr($ndate,0,4);
				$m=substr($ndate,5,2);
				$d=substr($ndate,8,2);
				$onsale=$d."/".$m."/".$y;
				$ondate=$result["Onrecord"];
				$oy=substr($ondate,0,4);
				$om=substr($ondate,5,2);
				$od=substr($ondate,8,2);
				$onrecord=$od."/".$om."/".$oy;
				$namena=$result["UName"];
				$testna=$result["Outcode"];
				if($testna==00000000){
					$testna=$namena;
				}else{
					$testna="";
				}


++$i;  

$test=$result["PDCode"];
$test=$test;

$worksheet->set_row($xlsRow, 19.80);
$worksheet->write("A$xlsRow",$onsale, $xlsCellDesc);
$worksheet->write("B$xlsRow",(string)$result["PDCode"], $xlsCellDesc);

$worksheet->write("C$xlsRow", $result["PDName"], $xlsCellDesc);

$worksheet->write("D$xlsRow", $result["Quantity"], $xlsCellDesc); 

$worksheet->write("E$xlsRow", $result["Price"], $xlsCellDesc);

$worksheet->write("F$xlsRow", $result["Dis_baht"], $xlsCellDesc);

$worksheet->write("G$xlsRow", $result["PricePerPiece"], $xlsCellDesc);

$worksheet->write("H$xlsRow", $result["Amount"], $xlsCellDesc);

$worksheet->write("I$xlsRow", $result["DisName"], $xlsCellDesc);

$worksheet->write("J$xlsRow", $result["Dispercent"], $xlsCellDesc);

$worksheet->write("K$xlsRow", $result["couponspercent"], $xlsCellDesc);

$worksheet->write("L$xlsRow", $result["couponsbaht"], $xlsCellDesc);

$worksheet->write("M$xlsRow", $result["Note"], $xlsCellDesc);
$worksheet->write("N$xlsRow","\r".$result["OutCode"], $xlsCellDesc);
$worksheet->write("O$xlsRow", $result["OutName"], $xlsCellDesc);
$worksheet->write("P$xlsRow", $onrecord, $xlsCellDesc);
$worksheet->write("Q$xlsRow", $testna, $xlsCellDesc);



$xlsRow++;


}
}

# เสร็จแล้วก็ส่งไฟล์ไปยัง Browser ครับแค่นี้ก็เสร็จแล้ว

$workbook->close();

header("Pragma: public");

header("Expires: 0");

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 

header("Content-Type: application/force-download");

header("Content-Type: application/octet-stream");

header("Content-Type: application/download");

header("Content-Disposition: attachment; filename=".basename("DreamtoyReport.xls").";");

header("Content-Transfer-Encoding: binary\r\n");

header("Content-Length: ".filesize($fname));

readfile($fname); 

unlink($fname);

exit();

?>


ผมไม่มีในส่วนของ Wraptext ทำไงดีอะครับ TT

ขอบคุณมากๆนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-21 17:52:01 By : muaeenth99
 


 

No. 8



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : webmaster เมื่อวันที่ 2010-09-21 17:42:18
รายละเอียดของการตอบ ::
ลองใส่แล้ว ตรงตัวเลขจะมี ' อยู่ข้งหน้าอะครับ เช่น '00145 , '50236, '00000 อยากให้ไม่มี ' นำหน้าอะครับ TT



ส่วน

ตอบความคิดเห็นที่ : 4 เขียนโดย : petch.it24 เมื่อวันที่ 2010-09-21 17:36:09
รายละเอียดของการตอบ ::
ใช้ไม่ได้ครับ เหมือนกับตอนไม่ใส่ (string) เลยครับ


ขอบคุณมากๆนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-21 17:56:01 By : muaeenth99
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ถามเรื่องการ Export รายงาน เป็น Excel ใน Column ที่ข้อมูลเป็น ตัวเลข
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่