|
|
|
สอบถาม การ Export DB To Excel หน่อยครับ ว่าจะแยกฟอร์ม เป็น 2 ฟอร์ม เพื่อแบก record ที่แสดงอย่างไร |
|
|
|
|
|
|
|
คุณดูที่ หัวข้อครับ ถ้าอยากสร้างกี่หน้าก็ไปเพิ่มที ่create sheet ครับ
ส่วนแถวก็ initRow ครับ
คุณก็ if มันว่า ถ้า initRow เกิน 54 ก็ไปอีก page ประมาณนี้ครับ
|
|
|
|
|
Date :
2011-11-10 13:01:34 |
By :
grandraftz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใส่ if ตรงไหนอ่ะครับ ใส่แล้วมันหยุดที่ 50 อีก 50 ไม่เอามาต่อ
|
ประวัติการแก้ไข 2011-11-10 15:06:05
|
|
|
|
Date :
2011-11-10 15:05:43 |
By :
investor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.คุณ add sheet เพิ่มหรือยังครับ ทำตามบรรทัดที่ 25
2. คุณได้ลองทำแบบ 100 บรรทัดเเล้วมันมาไหมครับ
3. ถ้าทำข้อ 1 เเล้ว พอคุณทำครบ 50 บรรทัด คุณก็ เลือก sheet 2 (คิดว่า ทำตามบรรทัดที่ 26)
เเล้วคุณก็ให้มัน run ต่อ ก็นาจะได้เเล้วครับ
|
|
|
|
|
Date :
2011-11-10 15:12:57 |
By :
grandraftz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับคุณ 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูครับ
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ ผมเอาไปประยุกต์ใช้ กับงานได้แล้ว ขอบคุณมากครับ
|
|
|
|
|
Date :
2011-11-11 17:44:47 |
By :
investor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|