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 Data to excel โดย phpspreadsheet หน่อยครับ



 

สอบถามการ Export Data to excel โดย phpspreadsheet หน่อยครับ

 



Topic : 136346



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



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




เรียนพี่ๆ ทุกท่านครับ ผมอยากสอบถามและวิธีการ Export Data to excel โดย phpspreadsheet หน่อยครับว่า code ชุด Export ผมต้องใช้คำสั่งเพิ่มตรงไหนบ้างครับ
Site_images-20-24

Code page : index.php (ผมรับค่าส่วนนี้เพื่อนำไปเช็คแล้ว query ข้อมูลตามที่เลือก

Code (PHP)
<form action="opentesting.php" id="export_filesim" method="post" enctype="multipart/form-data">
	<div class="card-tools">
		<select class="form-control select2bs4" style="border-color: #66adea" id="export_occupier" name="export_occupier" required>
			<option value="0">-- กรุณาเลือก --</option>
			<?php 
				$result = mysqli_query($connect,"SELECT DISTINCT occupier FROM table_sim "); 
				while($row = mysqli_fetch_array($result)){ 
					echo '<option value="'.$row['occupier'].'">'.$row['occupier'].'</option>'; 
				} 
			?>     
		</select>
	</div>
	<div class="card-tools">
		<button type="button" class="btn btn-danger" name="export_file_btn" id="export_file_btn">
			<i class="fa fa-file-excel"></i> Exports File 
		</button>  
	</div>
</form>
)


หน้ารับค่า : opentesting.php
Code (PHP)
date_default_timezone_set("Asia/Bangkok");
	session_start();

	require 'vendor/autoload.php';
    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx; 
	use PhpOffice\PhpSpreadsheet\Writer\Xls; 

	if(isset($_POST['export_occupier'])){
		$Export_Acc = $_POST['export_occupier'];
		$fileName = 'CHECK_SIM-FILE_'.time();

		$query_sim = "SELECT * FROM table_sim WHERE occupier='".$Export_Acc."' ORDER BY sim_id asc";
		$query_run = mysqli_query($connect,$query_sim);

		if(mysqli_num_rows($query_run)>0){
			$spreadsheet = new Spreadsheet();
			$sheet = $spreadsheet->getActiveSheet();

			$sheet->setCellValue('A1', 'phone');
			$sheet->setCellValue('B1', 'service');
			$sheet->setCellValue('C1', 'simmoney');
			$sheet->setCellValue('D1', 'expiration');
			$sheet->setCellValue('E1', 'occupier');
			$sheet->setCellValue('F1', 'status');
			$sheet->setCellValue('G1', 'note');
			$sheet->setCellValue('H1', 'linegroup');
			$sheet->setCellValue('I1', 'log_user');
			$sheet->setCellValue('J1', 'checksim');

			$rowcount = 2;
			foreach ($query_run as $data){
				$sheet->setCellValue('A'.$rowcount, $data['phone']);
				$sheet->setCellValue('B'.$rowcount, $data['service']);
				$sheet->setCellValue('C'.$rowcount, $data['simmoney']);
				$sheet->setCellValue('D'.$rowcount, $data['expiration']);
				$sheet->setCellValue('E'.$rowcount, $data['occupier']);
				$sheet->setCellValue('F'.$rowcount, $data['status']);
				$sheet->setCellValue('G'.$rowcount, $data['note']);
				$sheet->setCellValue('H'.$rowcount, $data['linegroup']);
				$sheet->setCellValue('I'.$rowcount, $data['log_user']);
				$sheet->setCellValue('J'.$rowcount, $data['checksim']);
				$rowcount++;
			}
			if($NameOccupier == 'Xlsx'){
				$writer = new Xlsx($spreadsheet);
				$final_filename = $fileName.'.xlsx';
			}elseif($Export_Acc == 'Xls'){
				$writer = new Xls($spreadsheet);
				$final_filename = $fileName.'.xls';
			}
			header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
			header('Content-Disposition: attachment;filename="'.urlencode($final_filename).'"');
			$writer->save('php://output');
			//$writer->save($final_filename);*/

		}else{
			$_SESSION['status'] = "No Record found to Export";
			header("Location: index.php");
		}
	}




Tag : PHP, MySQL, HTML, JavaScript, Excel (Excel.Application), Google Chrome







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2021-08-20 21:30:51 By : NIRUTB View : 1672 Reply : 8
 

 

No. 1



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



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


Quote:
code ชุด Export ผมต้องใช้คำสั่งเพิ่มตรงไหนบ้าง


ติดปัญหาอะไร error บรรทัดไหน ว่าอะไร






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 00:06:41 By : TheGreatGod_of_Death
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-21 00:06:41
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้....... ตอบความคิดเห็นที่ : 1 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-21 00:06:41
รายละเอียดของการตอบ ::
ผมอยากให้เลือกตรง select option แล้วตอนกด Export File ให้ไปดึงข้อมูลคนที่เลือกในฐานข้อมูล ออกมาเป็น excel ครับพี่

เช่น ผมเลือกนาย ก. พอกด Export File ให้ไปดึงข้อมูลของนาย ก. ทั้งหมด ออกมาเป็นไฟล์ Excel
** ตรง code Export ผมไม่ทราบว่าจะจัดวางตรงไหนให้มันแสดงผลออกมาเป็นอย่างที่ต้องการได้ครับพี่



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 01:03:36 By : NIRUTB
 

 

No. 3



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



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : NIRUTB เมื่อวันที่ 2021-08-21 01:03:36
รายละเอียดของการตอบ ::
ที่ว่ามาไม่ใช่ปัญหา...งั้น
ลองแคปหน้า excel sheet ที่ได้จากโค้ดปัจจุบัน
และจำลองผลลัพธ์ตามความต้องการ
ผมอยากรู้ว่าไม่ตรงตามความต้องการอย่างไร


เบื้องต้นสงสัย และไม่เข้าใจเจตนาตรงนี้ว่าจะเช็คอะไร
Code (PHP)
if($NameOccupier == 'Xlsx'){
				$writer = new Xlsx($spreadsheet);
				$final_filename = $fileName.'.xlsx';
			}elseif($Export_Acc == 'Xls'){
				$writer = new Xls($spreadsheet);
				$final_filename = $fileName.'.xls';
			}


$NameOccupier - ไม่รู้ที่มา
$Export_Acc - เป็นชื่อคนที่จะ export ข้อมูลซึ่งรับมาทาง $_POST['export_occupier']
แล้วเกี่ยวข้องยังไงกับ File Type (Xls) หรือว่ามีคนชื่อ "Xls" ในฐานข้อมูล
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 09:40:27 By : TheGreatGod_of_Death
 


 

No. 4



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-21 09:40:27
รายละเอียดของการตอบ ::
ใช่ครับ code ชุดนี้ผมลบออกแล้ว
Site_images-20-25

Site_images-20-26

Site_images-20-27

Code (PHP)
date_default_timezone_set("Asia/Bangkok");
	session_start();

	require 'vendor/autoload.php';
        use PhpOffice\PhpSpreadsheet\Spreadsheet;
        use PhpOffice\PhpSpreadsheet\Writer\Xlsx; 
	use PhpOffice\PhpSpreadsheet\Writer\Xls; 

	//$Export_Acc = $_POST['export_occupier'];

	if(isset($_POST['export_file_btn'])){
		$Export_Acc = $_POST['export_occupier'];
		$fileName = 'CHECK_SIM-FILE_'.time();

		//$query_sim = "SELECT * FROM table_sim ";
		$query_sim = "SELECT * FROM table_sim WHERE occupier='".$Export_Acc."' ORDER BY sim_id asc";
		$query_run = mysqli_query($connect,$query_sim);
		//$user_row = mysqli_fetch_assoc($query_run);

		if(mysqli_num_rows($query_run)>0){
			$spreadsheet = new Spreadsheet();
			$sheet = $spreadsheet->getActiveSheet();

			$sheet->setCellValue('A1', 'phone');
			$sheet->setCellValue('B1', 'service');
			$sheet->setCellValue('C1', 'simmoney');
			$sheet->setCellValue('D1', 'expiration');
			$sheet->setCellValue('E1', 'occupier');
			$sheet->setCellValue('F1', 'status');
			$sheet->setCellValue('G1', 'note');
			$sheet->setCellValue('H1', 'linegroup');
			$sheet->setCellValue('I1', 'log_user');
			$sheet->setCellValue('J1', 'checksim');

			$rowcount = 2;
			foreach ($query_run as $data){
				$sheet->setCellValue('A'.$rowcount, $data['phone']);
				$sheet->setCellValue('B'.$rowcount, $data['service']);
				$sheet->setCellValue('C'.$rowcount, $data['simmoney']);
				$sheet->setCellValue('D'.$rowcount, $data['expiration']);
				$sheet->setCellValue('E'.$rowcount, $data['occupier']);
				$sheet->setCellValue('F'.$rowcount, $data['status']);
				$sheet->setCellValue('G'.$rowcount, $data['note']);
				$sheet->setCellValue('H'.$rowcount, $data['linegroup']);
				$sheet->setCellValue('I'.$rowcount, $data['log_user']);
				$sheet->setCellValue('J'.$rowcount, $data['checksim']);
				$rowcount++;

				//$queryOccupier = "SELECT * FROM table_sim WHERE occupier='".$Export_Acc."' ORDER BY sim_id asc";
				//$Occupier_run = mysqli_query($connect,$queryOccupier);

			}

			header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
			header('Content-Disposition: attachment;filename="'.urlencode($final_filename).'"');
			$writer = new Xlsx($spreadsheet);
			$writer->save('php://output');
			//$writer->save($final_filename);*

		}else{
			$_SESSION['status'] = "No Record found to Export";
			header("Location: index.php?page=importfile");
			//$_SESSION['status_code'] = "Success";
			//echo 
		}
	}



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 10:36:07 By : NIRUTB
 


 

No. 5



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



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


ข้อมูลก็มาแล้ว

ถ้าหมายถึงข้อมูลผลลัพธ์ออกไม่ตรงตามฐานข้อมูล เช่น row มาไม่ครบ,
ข้อมูลบางคอลัมน์ (simmoney, note, expiration,...) ไม่ตรง

ลองเลือก namespace แค่อย่างเดียว (แต่จริงๆ ไม่น่าเกี่ยว)

Code (PHP)
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// use PhpOffice\PhpSpreadsheet\Writer\Xls;

// ...

$writer = new Xlsx($spreadsheet);
$writer->save('php://output');


ยังไงลองดูก่อน
ถ้ายังไม่ได้...ลองอัปเดตเฟรมเวิร์กเป็นเวอร์ชันล่าสุด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 11:44:00 By : TheGreatGod_of_Death
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-21 11:44:00
รายละเอียดของการตอบ ::
แต่ code ผมวางถูกต้องอยู่ใช่ไหมครับพี่

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 13:43:05 By : NIRUTB
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-21 11:44:00
รายละเอียดของการตอบ ::
พอกด Export file แล้ว ไม่มีการสร้างไฟล์ excel ออกมา ผมต้องเพิ่มตรงไหนครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 14:08:15 By : NIRUTB
 


 

No. 8



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



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


ตอบความคิดเห็นที่ : 7 เขียนโดย : NIRUTB เมื่อวันที่ 2021-08-21 14:08:15
รายละเอียดของการตอบ ::
อันนี้คือการขยายความของ "ปัญหา" ตามที่ผมถามใน No.1
แต่ยังอธิบายมาไม่หมด


มีโอกาสพลาด 2 ที่ คือ client ส่วนที่ไม่ได้นำมา (JS)
กับ server script ...ลองแก้อย่างหลังก่อน

ส่วน save ให้แก้เป็น

Code (PHP)
$writer = new Xlsx($spreadsheet);
$writer->save('excel/exported.xlsx'); // กำหนดเส้นทางที่จะบันทึกและใส่ชื่อไฟล์พร้อมสกุล



ประวัติการแก้ไข
2021-08-21 15:38:22
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 15:36:33 By : TheGreatGod_of_Death
 

   

ค้นหาข้อมูล


   
 

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