ขอความช่วยเหลือเรื่อง export เป็น excel เป็นภาษาไทยไม่ได้ ใช้ Excel.Application นะครับ
ถามเองตอบเอง เหอๆ
ตอนนี้ลองหาโหลด Spreadsheet/Excel/Writer.php มาลองใช้ดูอ่าครับ แต่ก็ยัง หาไม่ได้เลย จาก ttp://pear.php.net/ โหลดมาแตกไฟล์ไม่เห็นจะมีไฟล์ php ให้แกะซักนิด เหอๆ ชักเซงๆและ
Date :
2009-07-01 12:24:24
By :
leviathan
ถามเองตอบเอง อีกแล้วเหอๆๆ
ตอนนี้ export excel เป็นภาษาไทยได้ล่ะ แต่ยังมีบักที่มันไม่ยอมเคลียบัฟเฟอร์ ลองเอาโคดไปดูนะครับ เพื่อมีคนต้องการ + ช่วยกันแก้ เหอๆ ใช้ excel writer class นะครับ
Code (PHP)
<? 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();
//header("Content-Type: application/x-msexcel; name=\"example-colors.xls\"");
//header("Content-Disposition: inline; filename=\"example-colors.xls\"");
$fh=fopen($fname, "rb");
fpassthru($fh);
unlink($fname);
?>
แต่จะให้ใช้งานภาษาไทยได้ ต้องไปแก้ใน class.writeexcel_workbook.inc.php
ตรง
Code (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;
}
ช่วยๆกันแก้เน้อ เพื่อที่จะได้โคดดีๆมาใช้งานกัน
อิอิ
Date :
2009-07-01 18:15:41
By :
leviathan
ถามเองตอบเองครั้งสุดท้ายล่ะ หลังจากเอาเขาไถดินอยู่ 2 วันเต็มๆ ตอนนี้ผมใช้โคดแบบข้างบนนั้นแหละครับแล้วอาศัย ใส่ specbar หลังคำที่มันเกินมาเอา ทำแบบเฉพาะหน้าไปก่อน ไว้ค่อยแก้อีกที เหอๆ ใครดีมีวิธีดีกว่านี้ ขอคำแนะนำด้วยนะครับ
Date :
2009-07-02 00:34:01
By :
leviathan
ช่วยหน่อยคับใครก็ได้ คื่อว่าตอนนี้ผมใช้โน๊ตบุ๊ค acer มีปัญหาเกี่ยวกับ microsoft office wold excel
เวลาผมคีย์ เลข 1 พอenter แล้วมันขึ้นเลข 2 ตัว คือ 12 ตลอดเลย ถอน program ออก ติดตั้งใหม่ก็ไม่หาย ใครเคยเจอปัญหานี้บ้างคับ รบกวนช่วยหน่อย คอบคุณคุณคร๊าบ
Date :
2010-02-20 15:20:33
By :
athirach
เปลี่ยนจาก $xlApp = new COM("Excel.Application");
เป็น $xlApp = new COM("Excel.Application", NULL, CP_UTF8) or Die ("Did not instantiate Excel");
ตามนี้ครับใช้ได้ชัววน์
Date :
2012-02-22 15:57:49
By :
fander
เปลี่ยนจาก $xlApp = new COM("Excel.Application");
เป็น $xlApp = new COM("Excel.Application", NULL, CP_UTF8) or Die ("Did not instantiate Excel");
ขอบพระคุณมากๆคร้าบ!! ช่วยชีวิตผมเลยล่ะครับคำตอบนี้!!
Date :
2012-08-17 11:39:48
By :
ตามหามานาน
นายแน่มาก
Date :
2012-09-11 14:35:21
By :
jakkapang
Load balance : Server 03