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 DB To Excel หน่อยครับ ว่าจะแยกฟอร์ม เป็น 2 ฟอร์ม เพื่อแบก record ที่แสดงอย่างไร



 

สอบถาม การ Export DB To Excel หน่อยครับ ว่าจะแยกฟอร์ม เป็น 2 ฟอร์ม เพื่อแบก record ที่แสดงอย่างไร

 



Topic : 068928



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



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




https://www.thaicreate.com/php/php-export-database-to-excel-report-print-format.html

จากลิ้งด้านบน คือถ้าสมมุติว่า record ที่ได้จากการคิวรี่ออกมา มีประมาณ 100 record ข้อมูลก็จะเรียงออกมาทั้งหมด 100 แถว

แต่เราอยากให้แยกเป็น 2 ฟอร์ม เพื่อจะปริ้นเป็น 2 หน้า เนื่องจาก 100 แถวมันจะยาวเกินไป
โดย แบ่งฟอร์มละ 50 record ฟอร์มแรกมี header แล้วก็มี ข้อมูล 50 แถว แล้วหยุด แล้วเริ่มฟอร์มที่มีหัว header แบบด้านบนใหม่ แล้วก็มี ข้อมูล 50 แถวที่เหลือ

จะต้องเขียนอย่างไรครับ รบกวนแนะทีครับ



Tag : PHP









ประวัติการแก้ไข
2011-11-10 12:20:49
2011-11-10 12:21:04
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-11-10 12:05:17 By : invester View : 1218 Reply : 7
 

 

No. 1



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



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


คุณดูที่ หัวข้อครับ ถ้าอยากสร้างกี่หน้าก็ไปเพิ่มที ่create sheet ครับ
ส่วนแถวก็ initRow ครับ
คุณก็ if มันว่า ถ้า initRow เกิน 54 ก็ไปอีก page ประมาณนี้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-10 13:01:34 By : grandraftz
 


 

No. 2



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



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


ใส่ if ตรงไหนอ่ะครับ ใส่แล้วมันหยุดที่ 50 อีก 50 ไม่เอามาต่อ


ประวัติการแก้ไข
2011-11-10 15:06:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-10 15:05:43 By : investor
 

 

No. 3



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



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


1.คุณ add sheet เพิ่มหรือยังครับ ทำตามบรรทัดที่ 25
2. คุณได้ลองทำแบบ 100 บรรทัดเเล้วมันมาไหมครับ
3. ถ้าทำข้อ 1 เเล้ว พอคุณทำครบ 50 บรรทัด คุณก็ เลือก sheet 2 (คิดว่า ทำตามบรรทัดที่ 26)
เเล้วคุณก็ให้มัน run ต่อ ก็นาจะได้เเล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-10 15:12:57 By : grandraftz
 


 

No. 4



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



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


ขอบคุณครับคุณ grandraftz ที่ช่วยแนะนำ แต่เด๋วผมขออธิบายใหม่นิดนึงนะครับ เพื่อความชัดเจน ผมทำตัวอย่างมาให้ช่วยดูใหม่นะครับ

https://www.thaicreate.com/php/php-export-database-to-excel-report-print-format.htm

จาก code ในลิ้งด้านบนใน DB ผมได้เพิ่มข้อมูลจาก 4 เป็น 16 recordเพิ่อให้เห็นภาพชัดขึ้น
แต่ใช้ code เดิม พอรันไฟล์ php ก็จะได้ excel ออกมาแบบภาพนะครับ

ภาพปกติ

แต่ทีนี้สิ่งที่ผมต้องการคือ ให้แยก โดยมีการกำนนดให้ฟอร์มนึง แสดงแค่ 4 record แล้ว ขึ้น ฟอร์มใหม่ เพราะฉะนั้นข้อมูล 16 record จะถูกแสดงโดย 4 ฟอร์ม โดยสุดแต่ละฟอร์มเว้นสองบรรทัดก่อน ตามแบบภาพนี้อ่ะครับ

ภาพสอง

ไม่ได้เริ่ม sheet ใหม่นะครับ อยู่ sheet เดียวกัน

รบกวนแนะนำโค้ดทีครับว่าต้องเขียนยังไง ผมทดลองเขียนหลายแบบมาวันนึงละ ไม่ได้ซะที T_T


ประวัติการแก้ไข
2011-11-11 09:10:47
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-11 09:09:23 By : investor
 


 

No. 5



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



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


Code

if ($intRows > 7)


{
// สร้างหัวฟอร์มใหม่ที่บรรทัดที่ 10//
//*** Width & Height (A10:A10) ***//
$xlApp->ActiveSheet->Range("A10:A10")->ColumnWidth = 10.0;
$xlApp->ActiveSheet->Range("B10:B10")->ColumnWidth = 13.0;
$xlApp->ActiveSheet->Range("C10:C10")->ColumnWidth = 23.0;
$xlApp->ActiveSheet->Range("D10:D10")->ColumnWidth = 12.0;
$xlApp->ActiveSheet->Range("E10:E10")->ColumnWidth = 13.0;
$xlApp->ActiveSheet->Range("F10:F10")->ColumnWidth = 12.0;

//*** Report Title ***//
$xlApp->ActiveSheet->Range("A10:F10")->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Range("A10:F10")->MergeCells = True;
$xlApp->ActiveSheet->Range("A10:F10")->Font->Bold = True;
$xlApp->ActiveSheet->Range("A10:F10")->Font->Size = 20;
$xlApp->ActiveSheet->Range("A10:F10")->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(10,1)->Value = "Customer Report";

//*** Header ***//
$xlApp->ActiveSheet->Cells(12,1)->Value = "CustomerID";
$xlApp->ActiveSheet->Cells(12,1)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(12,1)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,1)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,1)->BORDERS->Weight = 1;

$xlApp->ActiveSheet->Cells(12,2)->Value = "Name";
$xlApp->ActiveSheet->Cells(12,2)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(12,2)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,2)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,2)->BORDERS->Weight = 1;

$xlApp->ActiveSheet->Cells(12,3)->Value = "Email";
$xlApp->ActiveSheet->Cells(12,3)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(12,3)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,3)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,3)->BORDERS->Weight = 1;

$xlApp->ActiveSheet->Cells(12,4)->Value = "CountryCode";
$xlApp->ActiveSheet->Cells(12,4)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(12,4)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,4)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,4)->BORDERS->Weight = 1;

$xlApp->ActiveSheet->Cells(12,5)->Value = "Budget";
$xlApp->ActiveSheet->Cells(12,5)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(12,5)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,5)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,5)->BORDERS->Weight = 1;

$xlApp->ActiveSheet->Cells(12,6)->Value = "Used";
$xlApp->ActiveSheet->Cells(12,6)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(12,6)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,6)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(12,6)->BORDERS->Weight = 1;

$intRows = 13; // กำหนดให้ข้อมูลที่เหลือไปเริ่มที่ แถว 13
}
//*** Detail ***//
$xlApp->ActiveSheet->Cells($intRows,1)->Value = $objResult["CustomerID"];
$xlApp->ActiveSheet->Cells($intRows,1)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells($intRows,1)->HorizontalAlignment = -4108;

$xlApp->ActiveSheet->Cells($intRows,2)->Value = $objResult["Name"];
$xlApp->ActiveSheet->Cells($intRows,2)->BORDERS->Weight = 1;

$xlApp->ActiveSheet->Cells($intRows,3)->Value = $objResult["Email"];
$xlApp->ActiveSheet->Cells($intRows,3)->BORDERS->Weight = 1;

$xlApp->ActiveSheet->Cells($intRows,4)->Value = $objResult["CountryCode"];
$xlApp->ActiveSheet->Cells($intRows,4)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells($intRows,4)->BORDERS->Weight = 1;

$xlApp->ActiveSheet->Cells($intRows,5)->Value = $objResult["Budget"];
$xlApp->ActiveSheet->Cells($intRows,5)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells($intRows,5)->NumberFormat = "$#,##0.00";

$xlApp->ActiveSheet->Cells($intRows,6)->Value = $objResult["Used"];
$xlApp->ActiveSheet->Cells($intRows,6)->BORDERS->Weight = 1;

$intRows++;
}

@unlink($strFileName); //*** Delete old files ***//



ผมลองกำหนด เมื่อ $intRows > 7 แล้วให้มันเขียน Header From ที่ row 10,12 แล้ว เซ็ท $intRows = 13 หวังให้ข้อมูลมันเริ่มจาก row 13 ก็ไม่ได้ครับ ผลออกมาเป็นแบบนี้ ข้อมูลของ CID05-CID015 หายไป เข้าใจว่าน่าจะถูกเขียนทับๆกันที่ ROW 13

สาม


ประวัติการแก้ไข
2011-11-11 09:28:20
2011-11-11 09:31:46
2011-11-11 09:33:15
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-11 09:27:33 By : Investor
 


 

No. 6



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



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


ลองดูครับ
Code (PHP)
				//*** Create Sheet 1 ***//
				$xlBook->Worksheets(1)->Name = "My Customer";							
				$xlBook->Worksheets(1)->Select;

				$intRows = 1;
				$rows =4;					
			
				//*** Width & Height (A1:A1) ***//
				$xlApp->ActiveSheet->Range("A1:A1")->ColumnWidth = 10.0;
				$xlApp->ActiveSheet->Range("B1:B1")->ColumnWidth = 13.0;
				$xlApp->ActiveSheet->Range("C1:C1")->ColumnWidth = 23.0;
				$xlApp->ActiveSheet->Range("D1:D1")->ColumnWidth = 12.0;
				$xlApp->ActiveSheet->Range("E1:E1")->ColumnWidth = 13.0;
				$xlApp->ActiveSheet->Range("F1:F1")->ColumnWidth = 12.0;
			
				while($objResult = mysql_fetch_array($objQuery))
				{
					if($rows == 4)
					{
						if($intRows > 4)
						{
							$intRows +=2;
						}
						//*** Report Title ***//
						$xlApp->ActiveSheet->Range("A1:F1")->BORDERS->Weight = 1;
						$xlApp->ActiveSheet->Range("A1:F1")->MergeCells = True;
						$xlApp->ActiveSheet->Range("A1:F1")->Font->Bold = True;
						$xlApp->ActiveSheet->Range("A1:F1")->Font->Size = 20;
						$xlApp->ActiveSheet->Range("A1:F1")->HorizontalAlignment = -4108;				
						$xlApp->ActiveSheet->Cells($intRows,1)->Value = "Customer Report";
						$intRows ++;
						//*** Header ***//				
						$xlApp->ActiveSheet->Cells($intRows,1)->Value = "CustomerID";
						$xlApp->ActiveSheet->Cells($intRows,1)->Font->Bold = True;
						$xlApp->ActiveSheet->Cells($intRows,1)->VerticalAlignment = -4108; 
						$xlApp->ActiveSheet->Cells($intRows,1)->HorizontalAlignment = -4108; 
						$xlApp->ActiveSheet->Cells($intRows,1)->BORDERS->Weight = 1;
						
						$xlApp->ActiveSheet->Cells($intRows,2)->Value = "Name";
						$xlApp->ActiveSheet->Cells($intRows,2)->Font->Bold = True;
						$xlApp->ActiveSheet->Cells($intRows,2)->VerticalAlignment = -4108; 
						$xlApp->ActiveSheet->Cells($intRows,2)->HorizontalAlignment = -4108;
						$xlApp->ActiveSheet->Cells($intRows,2)->BORDERS->Weight = 1;
							
						$xlApp->ActiveSheet->Cells($intRows,3)->Value = "Email";
						$xlApp->ActiveSheet->Cells($intRows,3)->Font->Bold = True;
						$xlApp->ActiveSheet->Cells($intRows,3)->VerticalAlignment = -4108;
						$xlApp->ActiveSheet->Cells($intRows,3)->HorizontalAlignment = -4108; 
						$xlApp->ActiveSheet->Cells($intRows,3)->BORDERS->Weight = 1;
						
						$xlApp->ActiveSheet->Cells($intRows,4)->Value = "CountryCode";
						$xlApp->ActiveSheet->Cells($intRows,4)->Font->Bold = True;
						$xlApp->ActiveSheet->Cells($intRows,4)->VerticalAlignment = -4108; 
						$xlApp->ActiveSheet->Cells($intRows,4)->HorizontalAlignment = -4108; 
						$xlApp->ActiveSheet->Cells($intRows,4)->BORDERS->Weight = 1;
						
						$xlApp->ActiveSheet->Cells($intRows,5)->Value = "Budget";
						$xlApp->ActiveSheet->Cells($intRows,5)->Font->Bold = True;
						$xlApp->ActiveSheet->Cells($intRows,5)->VerticalAlignment = -4108; 
						$xlApp->ActiveSheet->Cells($intRows,5)->HorizontalAlignment = -4108; 
						$xlApp->ActiveSheet->Cells($intRows,5)->BORDERS->Weight = 1;
						
						$xlApp->ActiveSheet->Cells($intRows,6)->Value = "Used";
						$xlApp->ActiveSheet->Cells($intRows,6)->Font->Bold = True;
						$xlApp->ActiveSheet->Cells($intRows,6)->VerticalAlignment = -4108; 
						$xlApp->ActiveSheet->Cells($intRows,6)->HorizontalAlignment = -4108;
						$xlApp->ActiveSheet->Cells($intRows,6)->BORDERS->Weight = 1;
						$rows =1;
						$intRows++;
					}
				//***********//
			

				
				//*** Detail ***//
				$xlApp->ActiveSheet->Cells($intRows,1)->Value = $objResult["CustomerID"];
				$xlApp->ActiveSheet->Cells($intRows,1)->BORDERS->Weight = 1;
				$xlApp->ActiveSheet->Cells($intRows,1)->HorizontalAlignment = -4108;
				
				$xlApp->ActiveSheet->Cells($intRows,2)->Value = $objResult["Name"];
				$xlApp->ActiveSheet->Cells($intRows,2)->BORDERS->Weight = 1;
				
				$xlApp->ActiveSheet->Cells($intRows,3)->Value = $objResult["Email"];
				$xlApp->ActiveSheet->Cells($intRows,3)->BORDERS->Weight = 1;
				
				$xlApp->ActiveSheet->Cells($intRows,4)->Value = $objResult["CountryCode"];
				$xlApp->ActiveSheet->Cells($intRows,4)->HorizontalAlignment = -4108;
				$xlApp->ActiveSheet->Cells($intRows,4)->BORDERS->Weight = 1;
				
				$xlApp->ActiveSheet->Cells($intRows,5)->Value = $objResult["Budget"];
				$xlApp->ActiveSheet->Cells($intRows,5)->BORDERS->Weight = 1;
				$xlApp->ActiveSheet->Cells($intRows,5)->NumberFormat = "$#,##0.00";
				
				$xlApp->ActiveSheet->Cells($intRows,6)->Value = $objResult["Used"];
				$xlApp->ActiveSheet->Cells($intRows,6)->BORDERS->Weight = 1;

				$intRows++;
				$rows++;
				}				
			

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-11 10:39:21 By : grandraftz
 


 

No. 7



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



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


ได้แล้วครับ ผมเอาไปประยุกต์ใช้ กับงานได้แล้ว ขอบคุณมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-11 17:44:47 By : investor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถาม การ Export DB To Excel หน่อยครับ ว่าจะแยกฟอร์ม เป็น 2 ฟอร์ม เพื่อแบก record ที่แสดงอย่างไร
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่