อ่าน excel ด้วย php แล้วไม่เป็นภาษาไทย ลองใช้ iconv แล้วก็ยังไม่ได้ครับ
ผมใช้ตัวอย่าง code จากที่นี่ครับ
https://www.thaicreate.com/php/php-excel.application-read-xls.html
ลองใช้ iconv ดูแล้วก็ยังไม่แสดงผลเป็นภาษาไทยครับ
echo iconv('UTF-8', 'iso8859-11',$xlSheet1->Cells->Item($i,1));
echo iconv('UTF-8', 'TIS-620',$xlSheet1->Cells->Item($i,1));
echo iconv('UTF-8', 'Windows-874',$xlSheet1->Cells->Item($i,1));
echo iconv('iso8859-11', 'UTF-8',$xlSheet1->Cells->Item($i,1));
echo iconv('TIS-620', 'UTF-8',$xlSheet1->Cells->Item($i,1));
echo iconv('Windows-874', 'UTF-8',$xlSheet1->Cells->Item($i,1));
ใช้ PHP Version 5.2.3
ดูที่ phpinfo ตรง iconv ขึ้นแบบนี้ครับ
iconv
iconv support enabled
iconv implementation "libiconv"
iconv library version 1.9
Directive Local Value Master Value
iconv.input_encoding ISO-8859-1 ISO-8859-1
iconv.internal_encoding ISO-8859-1 ISO-8859-1
iconv.output_encoding ISO-8859-1 ISO-8859-1
รบกวนแนะนำด้วยครับTag : PHP, Excel (Excel.Application)
Date :
2011-03-27 04:37:20
By :
oat
View :
8913
Reply :
7
ครับ เมื่อสักครู่ลองใส่แล้วก็ยังไม่ได้ครับ รวมถึงลองใส่แบบ tis-620 ด้วยครับ
อันนี้ code เต็มๆครับ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
<title>Import sample</title>
</head>
<body>
<?
//*** Get Document Path ***//
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp
$OpenFile = "test2.xls";
//*** Create Exce.Application ***//
$xlApp = new COM("Excel.Application");
$xlBook = $xlApp->Workbooks->Open($strPath."/".$OpenFile);
//$xlBook = $xlApp->Workbooks->Open(realpath($OpenFile));
$xlSheet1 = $xlBook->Worksheets(1);
?>
<table width="420" border="1">
<?for($i=1;$i<=5;$i++){?>
<tr>
<td><?=iconv('TIS-620', 'UTF-8',$xlSheet1->Cells->Item($i,1));?></td>
<td><?=iconv('UTF-8', 'TIS-620',$xlSheet1->Cells->Item($i,2));?></td>
<td><?=iconv('UTF-8', 'UTF-8',$xlSheet1->Cells->Item($i,3));?></td>
<td><?=iconv('UTF-8', 'UTF-8',$xlSheet1->Cells->Item($i,4));?></td>
</tr>
<?
echo $xlSheet1->Cells->Item($i,1);
echo iconv('ISO-8859-1', 'iso8859-1',$xlSheet1->Cells->Item($i,1));
echo iconv('ISO-8859-1', 'TIS-620',$xlSheet1->Cells->Item($i,1));
echo iconv('ISO-8859-1', 'Windows-874',$xlSheet1->Cells->Item($i,1));
echo iconv('iso8859-11', 'ISO-8859-1',$xlSheet1->Cells->Item($i,1));
echo iconv('TIS-620', 'ISO-8859-1',$xlSheet1->Cells->Item($i,1));
echo iconv('Windows-874', 'ISO-8859-1',$xlSheet1->Cells->Item($i,1));
}?>
</table>
<?
//*** Close & Quit ***//
$xlApp->Application->Quit();
$xlApp = null;
$xlBook = null;
$xlSheet1 = null;
?>
</body>
</html>
รบกวนแนะนำอีกครั้งครับ
Date :
2011-03-27 11:33:00
By :
langisser
ตอนนี้ได้แล้วครับ ลองไปตั้งค่า regional and language ตรงแถบ advance ให้เป็น thai ดู ผลออดมาคือแสดงภาษไทยได้เลยครับ ไม่ต้องใช้ iconv ด้วย
ผมใช้ windows xp(sp3) ครับ
แต่ยังติดปัญหาคาใจอยู่เรื่องนึงคือ ทำไมมันอ่านไฟล์ excel ช้าจัง กว่าจะแสดงผล(5 col,4 row ใช้ไป ราวๆ 20 วิ) อันนี้เป็นที่เครื่องผมหรือเปล่าครับ อยากรู้ว่าของคนอื่นเป็นแบบนี้หรือเปล่า
Date :
2011-03-27 17:50:56
By :
langisser
ปกติไม่ช้าขนาดนั้นน่ะครับ อันนี้เป็น Code อ่านได้ไม่จำกัดจำนวน Rows ครัย ขึ้นอยู่กับ Rows ของ Data ครับ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Tutorial</title>
</head>
<body>
<?
//*** Get Document Path ***//
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp
$OpenFile = "MyXls/MyExcelDB.xls";
//*** Create Excel.Application ***//
$xlApp = new COM("Excel.Application");
$xlBook = $xlApp->Workbooks->Open($strPath."/".$OpenFile);
//$xlBook = $xlApp->Workbooks->Open(realpath($OpenFile));
$xlSheet1 = $xlBook->Worksheets(1);
?>
<table width="420" border="1">
<?
$i=1;
while($xlSheet1->Cells->Item($i,1) != "")
{
?>
<tr>
<td><?=$xlSheet1->Cells->Item($i,1);?></td>
<td><?=$xlSheet1->Cells->Item($i,2);?></td>
<td><?=$xlSheet1->Cells->Item($i,3);?></td>
<td><?=$xlSheet1->Cells->Item($i,4);?></td>
<td><?=$xlSheet1->Cells->Item($i,5);?></td>
<td><?=$xlSheet1->Cells->Item($i,6);?></td>
</tr>
<?
$i = $i + 1;
}
?>
</table>
<?
//*** Close & Quit ***//
$xlApp->Application->Quit();
$xlApp = null;
$xlBook = null;
$xlSheet1 = null;
?>
</body>
</html>
Date :
2011-03-27 17:56:27
By :
webmaster
ไม่รู้จะว่าไงดี ลง excel 2003 ใหม่มันก็หายแล้วครับ(ทั้งๆที่เพิ่งไปลงไปก่อนหน้านี้เอง)
ก็ขอบคุณมากครับ สำหรับความช่วยเหลือ
Date :
2011-03-27 18:55:15
By :
langisser
สวัสดครับผมมีปัญหา json ไม่เป้นภาษาไทย ขอผู้รู้ช่วยเเนะนำด้วยครับ
Code
<?php
ini_set('display_errors', 1);
error_reporting(~0);
header("content-type:text/javascript;charset=utf-8");
$serverName = "localhost";
$userName = "root";
$userPassword = "";
$dbName = "pea_db";
$conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);
$sql = "SELECT * FROM pea_user";
$query = mysqli_query($conn,$sql);
if (!$query) {
printf("Error: %s\n", $conn->error);
exit();
}
$resultArray = array();
$tis620 = array();
$thai_data = array();
while($result = mysqli_fetch_array($query,MYSQLI_ASSOC))
{
array_push($resultArray,$result);
}
mysqli_close($conn);
//var_dump($resultArray);
//$tis620 = iconv("utf-8", "tis-620", $resultArray);
//$thai_data = iconv("tis-620","utf-8",$tis620);
//echo json_encode(iconv("utf-8", "tis-620", $resultArray));
echo (json_encode($resultArray));
?>
Code
[{"user_id":"123456","user_fname":"tossporn","user_lname":"chaichompoo","user_password":"12345678"},{"user_id":"123457","user_fname":"????????","user_lname":"????????","user_password":"12345278"},{"user_id":"123458","user_fname":"???????","user_lname":"???????????","user_password":"12335678"},{"user_id":"123459","user_fname":"????","user_lname":"??????","user_password":"12345678"}]
Date :
2018-06-08 00:16:06
By :
TTCS
ตั้งกระทู้ใหม่ครับ แล้วใช้ tag php ครอบโค๊ด จะได้อ่านง่ายๆ หน่อย
Date :
2018-06-08 06:39:40
By :
Chaidhanan
Load balance : Server 02