php create excel ข้อมูลที่เป็น utf-8
<?
header("Content-Type: application/x-msexcel; name="example-colors.xls"");
header("Content-Disposition: inline; filename="example-colors.xls"");
set_time_limit(10);
require_once "C:/AppServ/www/PHP2Excel/class.writeexcel_workbook.inc.php";
require_once "C:/AppServ/www/PHP2Excel/class.writeexcel_worksheet.inc.php";
$fname = tempnam("/tmp", "colors.xls");
$workbook = &new writeexcel_workbook($fname);
$workbook->set_codepage(3); //*******set codepage = utf-8*******
# Some common formats
$center =& $workbook->addformat(array('align' => 'left'));
$heading =& $workbook->addformat(array('align' => 'left', 'bold' => 1));
$worksheet1 =& $workbook->addworksheet("test");
$worksheet1->set_column(0, 3, 11);
$worksheet1->write(0, 0, "ไทยโว้ย", $heading);
$worksheet1->write(0, 1, "Index", $heading);
$worksheet1->write(0, 2, "ลองแล", $heading);
$worksheet1->write(0, 3, "Color", $heading);
for($i = 1; $i < 11; $i++)
{
$worksheet1->write($i, 0, "Index", $center);
$worksheet1->write($i, 1, "ไทยโว้ย", $center);
$worksheet1->write($i, 2, "Color", $center);
$worksheet1->write($i, 3, "ลองแล", $center);
}
$workbook->close();
$fh=fopen($fname, "rb");
fpassthru($fh);
unlink($fname);
?>
แต่จะให้ใช้งานภาษาไทยได้ ต้องไปแก้ใน class.writeexcel_workbook.inc.php
ตรง
function set_codepage($cp) {
if($cp==1)
$codepage = 0x04E4;
else if($cp==2)
$codepage = 0x8000;
else if($cp==3)
$codepage = 0xFDE9; // UTF-8ครับ
else if($cp==4)
$codepage = 0x036A;
if($codepage)
$this->_codepage = $codepage;
}
ช่วยๆกันแก้เน้อ เพื่อที่จะได้โคดดีๆมาใช้งานกัน
อิอิ
พอดีไปเจอกระทู้นี้มาแล้วอยากถามว่ามีใครแก้ปัญหานี้ได้หรือยังครับ
พอดีผมกำลังลองอยู่แล้วติดปัญหาเดียวกัน
header("Content-Type: application/x-msexcel; name="example-colors.xls"");
header("Content-Disposition: inline; filename="example-colors.xls"");
set_time_limit(10);
require_once "C:/AppServ/www/PHP2Excel/class.writeexcel_workbook.inc.php";
require_once "C:/AppServ/www/PHP2Excel/class.writeexcel_worksheet.inc.php";
$fname = tempnam("/tmp", "colors.xls");
$workbook = &new writeexcel_workbook($fname);
$workbook->set_codepage(3); //*******set codepage = utf-8*******
# Some common formats
$center =& $workbook->addformat(array('align' => 'left'));
$heading =& $workbook->addformat(array('align' => 'left', 'bold' => 1));
$worksheet1 =& $workbook->addworksheet("test");
$worksheet1->set_column(0, 3, 11);
$worksheet1->write(0, 0, "ไทยโว้ย", $heading);
$worksheet1->write(0, 1, "Index", $heading);
$worksheet1->write(0, 2, "ลองแล", $heading);
$worksheet1->write(0, 3, "Color", $heading);
for($i = 1; $i < 11; $i++)
{
$worksheet1->write($i, 0, "Index", $center);
$worksheet1->write($i, 1, "ไทยโว้ย", $center);
$worksheet1->write($i, 2, "Color", $center);
$worksheet1->write($i, 3, "ลองแล", $center);
}
$workbook->close();
$fh=fopen($fname, "rb");
fpassthru($fh);
unlink($fname);
?>
แต่จะให้ใช้งานภาษาไทยได้ ต้องไปแก้ใน class.writeexcel_workbook.inc.php
ตรง
function set_codepage($cp) {
if($cp==1)
$codepage = 0x04E4;
else if($cp==2)
$codepage = 0x8000;
else if($cp==3)
$codepage = 0xFDE9; // UTF-8ครับ
else if($cp==4)
$codepage = 0x036A;
if($codepage)
$this->_codepage = $codepage;
}
ช่วยๆกันแก้เน้อ เพื่อที่จะได้โคดดีๆมาใช้งานกัน
อิอิ
พอดีไปเจอกระทู้นี้มาแล้วอยากถามว่ามีใครแก้ปัญหานี้ได้หรือยังครับ
พอดีผมกำลังลองอยู่แล้วติดปัญหาเดียวกัน