ပထမ ဦး စွာ MySQL ဒေတာဘေ့စ်နှင့်စုံစမ်းမှုကိုချိတ်ဆက်ပါ။ ID , အမည် နှင့် အီးမေးလ်များ ကဲ့သို့သောနယ်ပယ်များအပါအ 0 င် သုံးစွဲသူများ ဟုခေါ်သည့်ဒေတာဘေ့စ်တွင်စားပွဲတစ်ခုရှိသည်ဆိုပါစို့။
<?php
// ဒေတာဘေ့စ် connection settings
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
// ဒေတာရှာဖွေမှုဒေတာ
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
?>
ထို့နောက်ကျွန်ုပ်တို့သည် PHP ကို CSV ဖိုင်တစ်ခုအဖြစ်တင်ပို့ရန် PHP ကိုအသုံးပြုသည်။ MySQLI_RESULT OFF တွင်ရှိသောအချက်အလက်များကိုလိုင်းဖြင့်ထုတ်ယူပြီး CSV ဖိုင်သို့စာဖြင့်ရေးသားထားသည်။
<?php
// အကယ်. စုံစမ်းမှုရလဒ်တည်ရှိလျှင်
if ($result->num_rows > 0) {
// ဖိုင်အမည်ကိုသတ်မှတ်ပါ
$filename = "users_data_" . date("Ymd_His") . ".csv";
// တုံ့ပြန်မှုခေါင်းစီးကိုသတ်မှတ်ပါ,ဖိုင်ကိုဒေါင်းလုပ်လုပ်ရန် browser ကိုပြောပါ
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '"');
// output ကိုဖွင့်လှစ်
$output = fopen('php://output', 'w');
// ခေါင်းစီးကိုရေးပါ
$header = ['ID', 'Name', 'Email'];
fputcsv($output, $header);
// ဒေတာအတန်းရေးပါ
while ($row = $result->fetch_assoc()) {
fputcsv($output, $row);
}
// output စီးဆင်းမှုကိုပိတ်ပါ
fclose($output);
}
?>
၎င်းသည် Excel ဖိုင်များကိုတိုက်ရိုက်ထုတ်လုပ်ရန်ပိုမိုရှုပ်ထွေးသော်လည်းတတိယပါတီစာကြည့်တိုက် phpexcel သို့မဟုတ် phpspread ရှိတာဖြင့်၎င်းကိုအောင်မြင်နိုင်သည်။ ဤစာကြည့်တိုက်နှစ်ခုသည်ပို့ကုန်မေးမြန်းမှုကိုတင်ပို့ရန်အတွက်ကြွယ်ဝသောလုပ်ဆောင်နိုင်စွမ်းကိုပေးသည် .xls သို့မဟုတ် .xlsx format နဲ့ဖိုင်များအဖြစ်သို့ရောက်သွားသည်။
ဤတွင် Excel တင်ပို့ခြင်း၏အခြေခံဥပမာတစ်ခုဖြစ်သည်။ ပထမ ဦး စွာ PHPSPREADSEET ကို install လုပ်ရန်လိုအပ်သည်။
composer require phpoffice/phpspreadsheet
ထို့နောက်ဒေတာများကိုတင်ပို့ရန် PHP တွင်အောက်ပါကုဒ်ကိုသုံးပါ။
<?php
// မိတ်ဆက်ခဲ့သည် PhpSpreadsheet အတန်းစာကြည့်တိုက်
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// စာရင်းအသစ်တစ်ခုကိုဖန်တီးပါ
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// စားပွဲပေါ်မှာ header setting
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Name');
$sheet->setCellValue('C1', 'Email');
// ဒေတာကိုဖြည့်ပါ
$rowNum = 2;
while ($row = $result->fetch_assoc()) {
$sheet->setCellValue('A' . $rowNum, $row['id']);
$sheet->setCellValue('B' . $rowNum, $row['name']);
$sheet->setCellValue('C' . $rowNum, $row['email']);
$rowNum++;
}
// ဖိုင်အမည်ကိုသတ်မှတ်ပါ
$filename = "users_data_" . date("Ymd_His") . ".xlsx";
// တုံ့ပြန်မှုခေါင်းစီးကိုသတ်မှတ်ပါ,ဖိုင်ကိုဒေါင်းလုပ်လုပ်ရန် browser ကိုပြောပါ
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
// ဖန်တီး Writer ကန့်ကွက်
$writer = new Xlsx($spreadsheet);
// output ဖိုင်
$writer->save('php://output');
?>
သင်ဒေတာဇယားကိုအသုံးပြုသူအားပုံနှိပ်ရန်အတွက်တင်ပြလိုပါက HTML ဇယားများအနေဖြင့်မေးမြန်းမှုရလဒ်များကိုသင် output လုပ်နိုင်သည်။ အသုံးပြုသူများသည် browser ၏ပုံနှိပ်လုပ်ငန်းကိုတိုက်ရိုက်ပုံနှိပ်ထုတ်ဝေသည်။
<?php
// အကယ်. စုံစမ်းမှုရလဒ်တည်ရှိလျှင်
if ($result->num_rows > 0) {
echo '<table border="1">';
echo '<thead>';
echo '<tr><th>ID</th><th>Name</th><th>Email</th></tr>';
echo '</thead>';
echo '<tbody>';
// output ဒေတာလိုင်း
while ($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td>' . $row['id'] . '</td>';
echo '<td>' . $row['name'] . '</td>';
echo '<td>' . $row['email'] . '</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
// Print ခလုတ်ကိုထည့်ပါ
echo '<br><button onclick="window.print()">ပုံစံကိုပုံနှိပ်ပါ</button>';
}
?>
ဤနည်းအားဖြင့်အသုံးပြုသူသည်စာမျက်နှာအကြောင်းအရာကိုစားပွဲပုံစံဖြင့်ပုံနှိပ်ရန် Print ခလုတ်ကိုနှိပ်ပါ။