L/O/G/O
www.themegallery.com
Export và Import
CSDL trong PHP
Serminar PHP chủ đề:
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN
Giảng viên hướng dẫn:
ThS. Mai Xuân Hùng
Sinh viên thực hiện:
Nguyễn Xuân Bình – 09520471
Nguyễn Phúc Hưng - 09520532
1. EXPORT CSDL RA FILE EXCEL
2. EXPORT CSDL RA FILE WORD
3. EXPORT CSDL RA FILE PDF
4. IMPORT CSDL TỪ FILE EXCEL
Nội dung
6.
2
Thảo luận
•
Tại sao phải Export, Import cơ sở dữ liệu bằng PHP ?
Thống kê nhanh chóng
Nhập dữ liệu từ nhiều nguồn khác nhau
3
•
Có nhiều cách để export CSDL ra file excel
Sử dụng PHP thuần để xuất file
Sử dụng MySql để xuất file
Sử dụng thư viện Spreadsheet_Excel_Writer
Sử dụng phpExcel
Sử dụng Tools
1. EXPORT CSDL RA FILE EXCEL
4
Cách 1: Sử dụng php thuần (chỉ sử dụng 1 file php để tương tác với CSDL và
file Excel)
Lưu ý các đoạn mã sau:
1. EXPORT CSDL RA FILE EXCEL
<?php
header("Content-type: application/vnd.ms-word; charset=utf-8 ");
header("Content-Disposition: attachment;filename=your_desired_name.xls");
header("Pragma: no-cache");
header("Expires: 0");
?>
5
•
Content-type:ta định dạng loại file xuất ra.
•
Content-Disposition:báo cho trình duyệt xuất file.
File mẫu
1. EXPORT CSDL RA FILE EXCEL
Lỗi FONT !!!
Cách giải quyết ???
WHY ??!
6
Nguyên nhân: Bảng mã để hỗ trợ lưu và xuất Tiếng Việt là UNICODE UTF-8, cả
MySQL và Excel đều có hỗ trợ UNICODE. Tuy nhiên trong Excel cách thức lưu trữ
lại là UTF-16 trong khi MySQL lại lưu trữ dưới dạng UTF-8
1. EXPORT CSDL RA FILE EXCEL
Thật rắc rối ???!!!
7
File HTML có hỗ trợ Tiếng Việt, bằng chứng là các trang web chúng ta đọc hàng
ngày đều được hỗ trợ Tiếng Việt. Vậy tại sao ta không xuất định dạng ra file Excel
là một trang HTML ??
1. EXPORT CSDL RA FILE EXCEL
Nhưng phải làm thế nào ???
Cách gì đây ???
Chú ý phần Header của trang HTML sẽ tìm ra câu trả
lời !!!!
8
1. EXPORT CSDL RA FILE EXCEL
9
<html xmlns=" /><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>
Ta định dạng lại Header cho file php như sau:
File mẫu
1. EXPORT CSDL RA FILE EXCEL
echo "<html>";
echo "<meta charset=utf-8>";
echo "<body>";
echo "$header";
echo '<br>';
echo "$data";
echo "</body>";
10
Cách 2: Sử dụng lệnh MySQL
1. EXPORT CSDL RA FILE EXCEL
11
SELECT * INTO OUTFILE 'C:\\text.csv'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM sinhvien
Chúng ta tạo một file text.csv trong ổ đĩa C:\
•
FIELDS TERMINATED BY : kết thúc 1 fields bằng cái gì “\t”= tab
•
OPTIONALLY ENCLOSED BY: bao quanh mỗi thuộc tính của 1 dòng bằng gì
•
LINES TERMINATED BY: kết thúc dòng bằng gì.
1. EXPORT CSDL RA FILE EXCEL
12
Cách 3: Sử dụng thư viện Spreadsheet_Excel_Writer
Truy cập: https://
www.google.com.vn/search?aq=f&oq=Spreadsheet_Excel_Writer&sugexp=chrome,mod
=0&sourceid=chrome&ie=UTF-8&q=Spreadsheet_Excel_Writer
để lấy thêm thông tin
1. EXPORT CSDL RA FILE EXCEL
13
Để sử dụng thư viện này thì máy cần cài thư viện PEAR và thật may mắn thì PEAR
được tích hợp sẵn khi bạn cài Xampp bản mới nhất.
Nếu bạn không sử dụng được thư viện Spreadsheet_Excel_Writer thì vào link này để
tải về sau đó copy đè vào thư mục C:\xampp\php\
Lời khuyên: nên tải về và copy đè lên để tránh trường hợp sai sót không đáng có :D
1. EXPORT CSDL RA FILE EXCEL
14
Cần lưu ý một số điểm sau:
Cần add file Write.php vào để sử dụng, điều này đặc biệt quan trọng, ko thể thiếu !!!
Trước khi sử dụng cần khởi tạo mới một Spreadsheet_Excel_Writer()
1. EXPORT CSDL RA FILE EXCEL
15
$workbook = new Spreadsheet_Excel_Writer();
require '/Spreadsheet/Excel/Writer.php';
Bắt buộc setVersion là 8 và có bảng mã là UTF-8
Ta tạo mới 1 sheet trong Excel sau đó setInputEncoding là UTF-8
1. EXPORT CSDL RA FILE EXCEL
16
$worksheet1 = &$workbook->addWorksheet ('worksheet 1');
$worksheet1->setInputEncoding('UTF-8');
$workbook->setVersion(8, 'utf-8');
Hàm write có cấu trúc
Write(số_dòng, số_cột, giá_trị_muốn_ghi);
File Excel được tạo sẽ có tên là excel.xls và được tạo qua phương thức send();
1. EXPORT CSDL RA FILE EXCEL
17
$workbook->send('excel.xls');
$workbook->close();
$worksheet1->write($dong, 0, $row[0]);
Dấu & trước workbook có ý nghĩa gì ??
1. EXPORT CSDL RA FILE EXCEL
18
<?php
$a = 3;
$b = &$a; // $b is a reference to $a
print "$a\n"; // prints 3
print "$b\n"; // prints 3
$a = 4; // change $a
print "$a\n"; // prints 4
print "$b\n"; // prints 4 as well, since $b is a reference to $a, which has
// been changed
?>
Dấu -> có ý nghĩa gì ??
Tương tự như OOP, dấu -> dùng để chỉ tới phương thức của đối tượng đó. Có thể
tham khảo OOP trong PHP
File mẫu
1. EXPORT CSDL RA FILE EXCEL
19
Cách 4: sử dụng thư viện PHPExcel
Truy cập vào : để lấy thêm
thông tin.
1. EXPORT CSDL RA FILE EXCEL
20
Cách 5: Sử dụng tool.
-
MySQL to Excel
-
DBConvert for Excel & MySQL 1.0.0
-
Excel MySQL Conversion software 3.0
-
MySQL Excel 3.0
1. EXPORT CSDL RA FILE EXCEL
21
- Tương tự như Export CSDL ra file Excel bằng PHP thuần
- Cần chú ý những điểm như sau:
2. EXPORT CSDL RA FILE WORD
22
HEADER("Content-Type: application/msword");
HEADER("Content-Disposition: attachment; filename=example.doc");
HEADER("Pragma: no-cache");
HEADER("Expires: 0");
Content-Type: application/msword
Quy định định dạng file xuất ra là Microsoft Word
Content-Disposition: attachment; filename=example.doc
Quy định file xuất ra có dạng tên_file.doc
File mẫu
2. EXPORT CSDL RA FILE WORD
23
Sử dụng thư viện fpdf.php được cung cấp free trên trang web:
/>
Để được hướng dẫn sử dụng thư viện fpdf truy cập vào :
/>
Ngoài ra trên internet cũng cung cấp rất nhiều các thư viện hỗ trợ xuất file pdf
khác.
3. EXPORT CSDL RA FILE PDF
24
Bắt đầu tạo một file pdf
3. EXPORT CSDL RA FILE PDF
25
<?php
require('fpdf.php');
$pdf = new FPDF(‘P’,’mm’,’A4’);
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
Lưu ý: chúng ta phải thêm file fpdf.php để sử dụng các phương thức đã
được tạo sẵn