PhpSpreadsheetを使用してデータをExcelファイルにエクスポート
6160 ワード
ソース:https://www.erdangjiade.com/js/8619.html
学生の成績リストが表示されます.リストの下にある「Excelテーブルのエクスポート」ボタンをクリックすると、データをダウンロードしてExcelファイルとして保存できます.ボタンをクリックすると、exportをリクエストしました.phpではexportを見てみましょうphpファイル:1.ヘッダーを設定するには、まずPhpSpreadsheetライブラリを自動的にロードし、次にインスタンス化し、ワークシートのタイトル名を「学生成績表」に設定し、次にヘッダーの内容を設定します.ヘッダーは2行に分かれ、最初の行は表の名前、2番目の行数は表の列の名前です.最後に、最初の行のセルをマージし、ヘッダーの内容スタイル:フォント、配置方法などを設定します.
2.データを読み取る我々はデータベースに接続した後、直接学生成績表t_を読み取るstudent、そしてforループ、各セルに対応する内容を設定し、総成績を計算します.表のデータは3行目から始まります.1行目、2行目はヘッダーが占有されているためです.次に、表全体のスタイルを設定し、表に枠線を付け、中央に揃えます.
冒頭で述べたボスのニーズを満たすためだけに、この時点でデータをExcelファイルに保存することができます.もちろん、このExcelファイルはサーバーにしか保存されず、メールなどでボスに送信すると終わります.しかし、より多くのアプリケーションシーンでは、ユーザーが直接データダウンロードをExcelテーブルファイルにエクスポートする場合があります.次を参照してください.ダウンロード保存最後に、ブラウザにデータのダウンロードを強制し、Excelファイルとして保存します.
完全なコードはソースコードとデータベースをダウンロードしてください.詳細THinkPHPソースにアクセスしてください:http://t.cn/RmZekiV
学生の成績リストが表示されます.リストの下にある「Excelテーブルのエクスポート」ボタンをクリックすると、データをダウンロードしてExcelファイルとして保存できます.ボタンをクリックすると、exportをリクエストしました.phpではexportを見てみましょうphpファイル:1.ヘッダーを設定するには、まずPhpSpreadsheetライブラリを自動的にロードし、次にインスタンス化し、ワークシートのタイトル名を「学生成績表」に設定し、次にヘッダーの内容を設定します.ヘッダーは2行に分かれ、最初の行は表の名前、2番目の行数は表の列の名前です.最後に、最初の行のセルをマージし、ヘッダーの内容スタイル:フォント、配置方法などを設定します.
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
include('conn.php'); //
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet();
//
$worksheet->setTitle(' ');
//
//
$worksheet->setCellValueByColumnAndRow(1, 1, ' ');
$worksheet->setCellValueByColumnAndRow(1, 2, ' ');
$worksheet->setCellValueByColumnAndRow(2, 2, ' ');
$worksheet->setCellValueByColumnAndRow(3, 2, ' ');
$worksheet->setCellValueByColumnAndRow(4, 2, ' ');
$worksheet->setCellValueByColumnAndRow(5, 2, ' ');
//
$worksheet->mergeCells('A1:E1');
$styleArray = [
'font' => [
'bold' => true
],
'alignment' => [
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
],
];
//
$worksheet->getStyle('A1')->applyFromArray($styleArray)->getFont()->setSize(28);
$worksheet->getStyle('A2:E2')->applyFromArray($styleArray)->getFont()->setSize(14);
2.データを読み取る我々はデータベースに接続した後、直接学生成績表t_を読み取るstudent、そしてforループ、各セルに対応する内容を設定し、総成績を計算します.表のデータは3行目から始まります.1行目、2行目はヘッダーが占有されているためです.次に、表全体のスタイルを設定し、表に枠線を付け、中央に揃えます.
$sql = "SELECT id,name,chinese,maths,english FROM `t_student`";
$stmt = $db->query($sql);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$len = count($rows);
$j = 0;
for ($i=0; $i
$j = $i + 3; // 3
$worksheet->setCellValueByColumnAndRow(1, $j, $rows[$i]['name']);
$worksheet->setCellValueByColumnAndRow(2, $j, $rows[$i]['chinese']);
$worksheet->setCellValueByColumnAndRow(3, $j, $rows[$i]['maths']);
$worksheet->setCellValueByColumnAndRow(4, $j, $rows[$i]['english']);
$worksheet->setCellValueByColumnAndRow(5, $j, $rows[$i]['chinese'] + $rows[$i]['maths'] + $rows[$i]['english']);
}
$styleArrayBody = [
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '666666'],
],
],
'alignment' => [
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
],
];
$total_rows = $len + 2;
// /
$worksheet->getStyle('A1:E'.$total_rows)->applyFromArray($styleArrayBody);
冒頭で述べたボスのニーズを満たすためだけに、この時点でデータをExcelファイルに保存することができます.もちろん、このExcelファイルはサーバーにしか保存されず、メールなどでボスに送信すると終わります.しかし、より多くのアプリケーションシーンでは、ユーザーが直接データダウンロードをExcelテーブルファイルにエクスポートする場合があります.次を参照してください.ダウンロード保存最後に、ブラウザにデータのダウンロードを強制し、Excelファイルとして保存します.
$filename = ' .xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
.xls , header :
$filename = ' .xlsx';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'xls');
$writer->save('php://output');
完全なコードはソースコードとデータベースをダウンロードしてください.詳細THinkPHPソースにアクセスしてください:http://t.cn/RmZekiV