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,038

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


[PHP] ถามเรื่องการ 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 : 1972 Reply : 8
 

 

No. 1



โพสกระทู้ ( 74,059 )
บทความ ( 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,059 )
บทความ ( 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,059 )
บทความ ( 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,059 )
บทความ ( 838 )

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

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

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



เปลี่ยนเป็น

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

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

 

No. 7



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



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


ขอโทดทีนะครับ ที่ไม่ได้เอา Code ให้ดู ขอโทดจริงๆครับ
Code (PHP)
001.<?
002.require_once "class/class.writeexcel_workbook.inc.php";
003.require_once "class/class.writeexcel_worksheet.inc.php";
004.include("connect.php");
005.$sdate=$_POST["sdate"];//2010-05-05
006.                $nsdate=$_POST["sdate"];
007.                $nsy=substr($nsdate,0,4);
008.                $nsm=substr($nsdate,5,2);
009.                $nsd=substr($nsdate,8,2);
010.                $nsdate=$nsd."/".$nsm."/".$nsy;
011.$edate=$_POST["edate"];
012.                $nedate=$_POST["edate"];
013.                $ney=substr($nedate,0,4);
014.                $nem=substr($nedate,5,2);
015.                $ned=substr($nedate,8,2);
016.                $nedate=$ned."/".$nem."/".$ney;
017.$outcode=$_POST["outcode"];
018. 
019.         $sqloutname="select * from outlet where outcode='$outcode'";
020.         $queryoutname=mysql_query($sqloutname);
021.         $rows=mysql_fetch_array($queryoutname);
022.$token = md5(uniqid(rand(), true));
023.$fname= "Report.xls";
024.$workbook =& new writeexcel_workbook($fname);
025. 
026.$worksheet =& $workbook->addworksheet("รายงานการขาย");
027.$worksheet->set_margin_right(0.50);
028.$worksheet->set_margin_bottom(1.10);
029. 
030.## Set Format ##
031. 
032.$xlscelldesc_header =& $workbook->addformat();
033. 
034.$xlscelldesc_header->set_font('Angsana New');
035. 
036.$xlscelldesc_header->set_size(14);
037. 
038.$xlscelldesc_header->set_color('blue');
039. 
040.$xlscelldesc_header->set_bold(1);
041. 
042.$xlscelldesc_header->set_text_v_align(1);
043. 
044.$xlscelldesc_header->set_merge(1);
045. 
046.$xlsCellDesc =& $workbook->addformat();
047. 
048.$xlsCellDesc->set_font('Angsana New');
049. 
050.$xlsCellDesc->set_size(12);
051. 
052.$xlsCellDesc->set_color('black');
053. 
054.//$xlsCellDesc->set_bor(1);
055. 
056.$xlsCellDesc->set_align('left');
057. 
058.$xlsCellDesc->set_text_v_align(1);
059. 
060.## End of Set Format ##
061. 
062. 
063. 
064.## Set Column Width & Height กำหนดความกว้างของ Cell
065. 
066.$worksheet->set_column('A:A', 6.5);
067.$worksheet->set_column('B:B', 7.6 );
068.$worksheet->set_column('C:C', 5);
069.$worksheet->set_column('D:D', 5);
070.$worksheet->set_column('E:E', 12);
071.$worksheet->set_column('F:F', 12);
072.$worksheet->set_column('G:G', 12);
073.$worksheet->set_column('H:H', 12);
074.$worksheet->set_column('I:I', 15);
075.$worksheet->set_column('J:J', 8.5);
076.$worksheet->set_column('K:K', 9);
077.$worksheet->set_column('L:L', 10);
078.$worksheet->set_column('M:M', 12);
079.$worksheet->set_column('N:N', 13);
080.$worksheet->set_column('O:O', 13);
081. 
082. 
083.$celldesc_h = 16.50;
084. 
085. 
086.## Writing Data เพิ่มข้อมูลลงใน Cell
087. 
088. 
089. 
090.# กำหนดความสูงของ Cell
091. 
092.$worksheet->set_row(1, $celldesc_h);
093. 
094.$worksheet->set_row(2, $celldesc_h);
095. 
096.$worksheet->set_row(3, $celldesc_h);
097. 
098.$worksheet->set_row(4, $celldesc_h);
099. 
100.$worksheet->set_row(5, $celldesc_h);
101. 
102. 
103. 
104. 
105.$worksheet->write(G3, " รายงานการขายประจำวันที่ :    ".$nsdate. "      ถึงวันที่       ".$nedate."        ห้าง      ".$rows["OutName"], $xlscelldesc_header);
106.$worksheet->write_blank(F6,$xlscelldesc_header);
107. 
108. 
109.$worksheet->write(A5,"วันที่", $xlscelldesc_header);
110. 
111.$worksheet->write(B5,"รหัสสินค้า", $xlscelldesc_header);
112. 
113.$worksheet->write(C5,"ชื่อสินค้า", $xlscelldesc_header);
114. 
115.$worksheet->write(D5,"จำนวน", $xlscelldesc_header);
116. 
117.$worksheet->write(E5,"ราคาขายปลีกต่อชิ้น", $xlscelldesc_header);
118. 
119.$worksheet->write(F5,"ส่วนลดต่อชิ้น (บาท)", $xlscelldesc_header);
120. 
121.$worksheet->write(G5,"ราคาเก็บเงินต่อชิ้น", $xlscelldesc_header);
122. 
123.$worksheet->write(H5,"จำนวนเงินรวมที่เก็บได้", $xlscelldesc_header);
124. 
125.$worksheet->write(I5,"ส่วนลดการค้า", $xlscelldesc_header);
126. 
127.$worksheet->write(J5,"ส่วนลด (%)", $xlscelldesc_header);
128. 
129.$worksheet->write(K5,"ส่วนลดคูปอง (%)", $xlscelldesc_header);
130.$worksheet->write(L5,"ส่วนลดคูปอง ( บาท )", $xlscelldesc_header);
131.$worksheet->write(M5,"หมายเหตุ", $xlscelldesc_header);
132.$worksheet->write(N5,"รหัสจุดขาย", $xlscelldesc_header);
133.$worksheet->write(O5,"ชื่อจุดขาย", $xlscelldesc_header);
134.$worksheet->write(P5,"วันที่บันทึก", $xlscelldesc_header);
135.$worksheet->write(Q5,"PC", $xlscelldesc_header);
136. 
137. 
138. 
139. 
140.//$worksheet->write_blank(E6,$xlscelldesc_header);
141. 
142.//$worksheet->write(F6,"$price ", $xlscelldesc_header);
143. 
144.$xlsRow = 6;
145. 
146. 
147. 
148.# ตรงนี้คือดึงข้อมูลจาก mysql มาใส่ใน Cell
149.if($outcode=="0000000"){
150. 
151.$sql="select *
152.from  saler  s
153.inner join  outlet o on (s.outcode=o.outcode)
154.inner join user u on (s.user_name=u.user_name)
155.inner join product p on (p.pdcode = s.pdcode)
156.inner join discount d ON (d.discode = s.discode)
157.where onsale between '$sdate' and '$edate'
158.order by s.onsale,s.discode,s.pdcode asc ";
159. 
160.}else{
161. 
162.$sql="select *
163.from  saler  s
164.inner join  outlet o on (s.outcode=o.outcode)
165.inner join user u on (s.user_name=u.user_name)
166.inner join product p on (p.pdcode = s.pdcode)
167.inner join discount d ON (d.discode = s.discode)
168.where onsale between '$sdate' and '$edate'
169.and   o.outcode='$outcode'
170.order by s.onsale,s.discode,s.pdcode asc ";
171. 
172.}
173. 
174. 
175.$query=mysql_query($sql);
176.$num=mysql_num_rows($query);
177.if($num==0){
178.echo "<script language='javascript'>alert('ไม่พบข้อมูล');</script>";   
179.print "<meta http-equiv=refresh content=0;URL=admin_1.php>";
180. 
181.exit();
182.}else{
183. 
184.                while($result= mysql_fetch_array($query)){
185.                $ndate=$result["Onsale"];//2010-03-01
186.                $y=substr($ndate,0,4);
187.                $m=substr($ndate,5,2);
188.                $d=substr($ndate,8,2);
189.                $onsale=$d."/".$m."/".$y;
190.                $ondate=$result["Onrecord"];
191.                $oy=substr($ondate,0,4);
192.                $om=substr($ondate,5,2);
193.                $od=substr($ondate,8,2);
194.                $onrecord=$od."/".$om."/".$oy;
195.                $namena=$result["UName"];
196.                $testna=$result["Outcode"];
197.                if($testna==00000000){
198.                    $testna=$namena;
199.                }else{
200.                    $testna="";
201.                }
202. 
203. 
204.++$i
205. 
206.$test=$result["PDCode"];
207.$test=$test;
208. 
209.$worksheet->set_row($xlsRow, 19.80);
210.$worksheet->write("A$xlsRow",$onsale, $xlsCellDesc);
211.$worksheet->write("B$xlsRow",(string)$result["PDCode"], $xlsCellDesc);
212. 
213.$worksheet->write("C$xlsRow", $result["PDName"], $xlsCellDesc);
214. 
215.$worksheet->write("D$xlsRow", $result["Quantity"], $xlsCellDesc);
216. 
217.$worksheet->write("E$xlsRow", $result["Price"], $xlsCellDesc);
218. 
219.$worksheet->write("F$xlsRow", $result["Dis_baht"], $xlsCellDesc);
220. 
221.$worksheet->write("G$xlsRow", $result["PricePerPiece"], $xlsCellDesc);
222. 
223.$worksheet->write("H$xlsRow", $result["Amount"], $xlsCellDesc);
224. 
225.$worksheet->write("I$xlsRow", $result["DisName"], $xlsCellDesc);
226. 
227.$worksheet->write("J$xlsRow", $result["Dispercent"], $xlsCellDesc);
228. 
229.$worksheet->write("K$xlsRow", $result["couponspercent"], $xlsCellDesc);
230. 
231.$worksheet->write("L$xlsRow", $result["couponsbaht"], $xlsCellDesc);
232. 
233.$worksheet->write("M$xlsRow", $result["Note"], $xlsCellDesc);
234.$worksheet->write("N$xlsRow","\r".$result["OutCode"], $xlsCellDesc);
235.$worksheet->write("O$xlsRow", $result["OutName"], $xlsCellDesc);
236.$worksheet->write("P$xlsRow", $onrecord, $xlsCellDesc);
237.$worksheet->write("Q$xlsRow", $testna, $xlsCellDesc);
238. 
239. 
240. 
241.$xlsRow++;
242. 
243. 
244.}
245.}
246. 
247.# เสร็จแล้วก็ส่งไฟล์ไปยัง Browser ครับแค่นี้ก็เสร็จแล้ว
248. 
249.$workbook->close();
250. 
251.header("Pragma: public");
252. 
253.header("Expires: 0");
254. 
255.header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
256. 
257.header("Content-Type: application/force-download");
258. 
259.header("Content-Type: application/octet-stream");
260. 
261.header("Content-Type: application/download");
262. 
263.header("Content-Disposition: attachment; filename=".basename("DreamtoyReport.xls").";");
264. 
265.header("Content-Transfer-Encoding: binary\r\n");
266. 
267.header("Content-Length: ".filesize($fname));
268. 
269.readfile($fname);
270. 
271.unlink($fname);
272. 
273.exit();
274. 
275.?>


ผมไม่มีในส่วนของ 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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





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