 |
จากบทความ "สร้าง Excel (xls,xlsx) ไฟล์ด้วย PHPExcel และการส่งออก Export จากฐานข้อมูล MySQL Database"ติดปัญหาภาษาไทยครับ |
|
 |
|
|
 |
 |
|
จากบทความ "สร้าง Excel (xls,xlsx) ไฟล์ด้วย PHPExcel และการส่งออก Export จากฐานข้อมูล MySQL Database" (https://www.thaicreate.com/community/phpexcel-and-mysql.html)
ผมติดปัญหา export เป็น excel ภาษาไทยไม่สำเร็จครับ ลองใส่โค้ด mysql_query("SET NAMES TIS620"); ก็ไม่ได้ครับเป็น ????
UTF8 ก็ไม่ได้ ในฐานข้อมูลผมเป็น UTF-8 อะครับ ใครทำได้ช่วยที่บอกที่นะครับ จะทำให่แสดงภาษาไทยได้อย่างไรครับ
โค้ดนี้ครับข้อมมูลผมเป็นภาษาไทย UTF-8 ครับ แสดงผลไม่ได้ครับ
Code (PHP)
<?php
/**
* PHPExcel
*
* Copyright (C) 2006 - 2011 PHPExcel
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* @category PHPExcel
* @package PHPExcel
* @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version 1.7.6, 2011-02-27
*/
/** Error reporting */
error_reporting(E_ALL);
date_default_timezone_set('Europe/London');
/** PHPExcel */
require_once '../Classes/PHPExcel.php';
// Create new PHPExcel object
echo date('H:i:s') . " Create new PHPExcel object\n";
$objPHPExcel = new PHPExcel();
// Set properties
echo date('H:i:s') . " Set properties\n";
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
// Add some data
echo date('H:i:s') . " Add some data\n";
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'CustomerID')
->setCellValue('B1', 'Name')
->setCellValue('C1', 'Email')
->setCellValue('D1', 'CountryCode')
->setCellValue('E1', 'Budget')
->setCellValue('F1', 'Used');
// Write data from MySQL result
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM customer";
$objQuery = mysql_query($strSQL);
$i = 2;
while($objResult = mysql_fetch_array($objQuery))
{
$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $objResult["CustomerID"]);
$objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $objResult["Name"]);
$objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $objResult["Email"]);
$objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $objResult["CountryCode"]);
$objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $objResult["Budget"]);
$objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $objResult["Used"]);
$i++;
}
mysql_close($objConnect);
// Rename sheet
echo date('H:i:s') . " Rename sheet\n";
$objPHPExcel->getActiveSheet()->setTitle('My Customer');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Save Excel 2007 file
echo date('H:i:s') . " Write to Excel2007 format\n";
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$strFileName = "myData.xlsx";
$objWriter->save($strFileName);
// Echo memory peak usage
echo date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB\r\n";
// Echo done
echo date('H:i:s') . " Done writing file.\r\n";
?>
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2012-12-17 08:48:55 2012-12-17 09:15:48 2012-12-17 09:18:14
|
 |
 |
 |
 |
Date :
2012-12-17 08:32:21 |
By :
yokszaza |
View :
5400 |
Reply :
7 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าใจฐานข้อมูลขอบคุณเป็นแบบ UTF-8 ไม่ต้องทำอะไรเลยครับ แต่ถ้าข้อความจากการพิมพ์ให้ใช้ iconv() ครับ
Code (PHP)
$objPHPExcel->getActiveSheet()->setCellValue('A1', ''.iconv('TIS-620','UTF-8','รวม (รายการ)').'');
|
 |
 |
 |
 |
Date :
2012-12-17 09:26:36 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมใช้ Code นี้แล้วมันขึ้นแบบนี้อ่ะครับมีใครช่วยตอบผมที02:57:09 Create new PHPExcel object 02:57:09 Set properties 02:57:09 Add some data 02:57:09 Rename sheet 02:57:09 Write to Excel2007 format 02:57:09 Peak memory usage: 7.75 MB 02:57:09 Done writing file.
|
 |
 |
 |
 |
Date :
2012-12-17 09:58:55 |
By :
joehawe |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โค้ดที่ผมทำครับ มันไม่ยอมแสดงภาษาไทยครับ


Code (PHP)
<?php
/**
* PHPExcel
*
* Copyright (C) 2006 - 2012 PHPExcel
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* @category PHPExcel
* @package PHPExcel
* @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version 1.7.8, 2012-10-12
*/
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Browser');
/** Include PHPExcel */
require_once '../Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
// Add some data
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'ไทย');
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("db_purchase");
$strSQL = "SELECT * FROM item";
$objQuery = mysql_query($strSQL);
$i = 2;
while($objResult = mysql_fetch_array($objQuery))
{
$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $objResult["NAME_ITEM"]);
$i++;
}
mysql_close($objConnect);
// Miscellaneous glyphs, UTF-8
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
|
ประวัติการแก้ไข 2012-12-17 10:20:27 2012-12-17 10:34:03
 |
 |
 |
 |
Date :
2012-12-17 10:20:01 |
By :
yokszaza |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้ละครับ
ขอบคุณมากครับ พี่วิน แต่มะวานผมก็นั่งทำ ใส่แบบนี้แล้ว ไม่ได้ ผมเลยมาถาม ขอโทษที่รบกวนนะครับ แต่มะวานผมลองทุกวิธี วิธีนี้ด้วยแต่ไม่ได้ สงสัยผมึน แต่ขอบคุณมากๆ ครับที่ช่วยเหลือ
|
ประวัติการแก้ไข 2012-12-17 11:05:45
 |
 |
 |
 |
Date :
2012-12-17 11:05:17 |
By :
yokszaza |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อิอิ จัดไป
|
 |
 |
 |
 |
Date :
2012-12-17 11:10:36 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2013-07-04 14:43:47 |
By :
ณัฐวุฒิ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|