 |
|
|
 |
 |
|
ลองใช้ iconv ช่วยหรือยังครับ
|
 |
 |
 |
 |
Date :
2010-11-22 12:02:56 |
By :
PlaKriM |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองแล้วครับ
|
 |
 |
 |
 |
Date :
2010-11-22 12:23:05 |
By :
naskw |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ทำได้ละครับ หลังจากงมอยู่นาน ขอบคุณคุณพี่ PlaKriM
ทำไมผมตั้งกระทู้เองแล้ว ต้องตอบเองแทบทุกครั้งไปหว่า 
|
ประวัติการแก้ไข 2010-11-25 13:19:33 2010-11-25 13:19:40
 |
 |
 |
 |
Date :
2010-11-25 13:18:30 |
By :
naskw |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่ทราบท่านว่า anu แก้ปัญหายังไง ติดปัญหาำภาษาไทยกับ PDF นี้เหมือนกันครับ
ลองทั้ง iconv utf8_encode mb_convert_encoding ก็ยังไม่ได้
รบกวนแนะนำด้วยครับ ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2011-01-17 11:02:49 |
By :
เอ็ม |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ติดยังไงครับ ออกเป็นไฟล์ xls มันใช้ภาษาไทยได้ไหมครับ
|
 |
 |
 |
 |
Date :
2011-01-17 11:37:27 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Excel ได้ปกติครับ อย่างแจ่มเลย
แต่แปลงเป็น PDF กลับเป็นภาษาต่างดาวไปเลย
ชื่อไฟล์นี่เป็นภาษาไทยปกติ มีปัญหาเฉพาะในเนื้อเอกสาร
ลองพิมพ์แค่ว่า "ทดสอบ" ก็ยังไม่ได้เลย
เป็นทั้ง server windows และ linux
|
 |
 |
 |
 |
Date :
2011-01-17 12:39:16 |
By :
เอ็ม |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
$objPHPExcel->getActiveSheet()->setCellValue('D1', 'ทดสอบ'); ปกติเขียนอย่างนี้ใช่ไหมครับ
$objPHPExcel->getActiveSheet()->setCellValue('D1', ''.iconv('UTF-8','TIS-620','ทดสอบ').''); ลองเปลี่ยนเป็นแบบนี้
$objPHPExcel->getActiveSheet()->setCellValue('D1', ''.iconv('TIS-620','UTF-8','ทดสอบ').''); หรือแบบนี้ดูครับ
|
 |
 |
 |
 |
Date :
2011-01-17 12:50:14 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ คุณไวยวิทย์ 
ลองแล้วยังไม่ได้เลยครับ ตอนนี้แอบปันใจให้ zend pdf บ้างแล้วครับ
สามารถใช้ฟอนต์ windows ได้ลงตัว ไม่มีปัญหาเรื่องสละลอยด้วยครับ
แต่ก็ไม่อยากใช้หลายตัว หาก PHPExcel write pdf ได้ไม่มีปัญหาก็จะใช้ PHPExcel นี่แหละครับ
Code (PHP)
error_reporting(E_ERROR);
require_once 'Excel/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('EucrosiaUPC');
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(14);
$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
$objPHPExcel->getActiveSheet()->getPageSetup()->setFitToWidth(1);
$objPHPExcel->getActiveSheet()->getPageSetup()->setFitToHeight(0);
$objPHPExcel->getActiveSheet()->getPageMargins()->setTop(1);
$objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0.75);
$objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.75);
$objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(1);
$objPHPExcel->getActiveSheet()->setCellValue('a5', 'ทดสอบ');
$objPHPExcel->getActiveSheet()->setCellValue('a6', ''.iconv('UTF-8','TIS-620','ทดสอบ').'');
$objPHPExcel->getActiveSheet()->setCellValue('a7', ''.iconv('TIS-620','UTF-8','ทดสอบ').'');
$objPHPExcel->getActiveSheet()->setTitle('ทดสอบภาษาไทย');
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="'.iconv('UTF-8','TIS-620','ทดสอบภาษาไทย').'.pdf"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('php://output');
exit;
|
 |
 |
 |
 |
Date :
2011-01-18 09:37:56 |
By :
เอ็ม |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่รู้ว่าคุณเอ็มใช้งานได้หรือยังหน่ะครับ
phpexcel ใช้งาน tcpdf
1. ดาวน์โหลดฟ้อนท์ไทยก่อนที่ http://komsitr.net/?p=18
2. แตกไฟล์แล้วก็อบเอาฟ้อนที่จะใช้งานไป ผมใช้ angsanaupc จะมี 3 ไฟล์ คือ angsanaupc.ctg.z , angsanaupc.php และ angsanaupc.z
ไปวางที่ \Classes\PHPExcel\Shared\PDF\fonts
3. เปลี่ยนจาก
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('EucrosiaUPC');
เป็น
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('angsanaupc');
แล้วทดลองออกรายงานเป็น pdf เช่นเดิม โดยไม่ต้องใช้ iconv ครับ น่าจะได้ลองดูครับ
ขอบคุณลิงค์ดาวน์โหลดฟ้อนไทยด้วยครับผม ไม่รู้มีวิธีอื่นนอกจากนี้หรือเปล่าหน่ะครับ
อ่านเพิ่มเติม http://phpexcel.codeplex.com/Thread/View.aspx?ThreadId=232179
|
ประวัติการแก้ไข 2011-01-18 16:26:29 2011-01-18 16:27:02 2011-01-18 16:29:37 2011-01-18 16:39:41 2011-01-19 08:31:06 2011-01-19 08:33:31 2011-01-19 09:30:49
 |
 |
 |
 |
Date :
2011-01-18 16:25:43 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ คุณไวยวิทย์
งานนี้ผมพลาดเอง เคยลองสร้างฟอนต์เอง แล้วเอาไปวางในส่วนของ tcpdf แล้วแหละครับ แต่ยังไม่ได้
เพราะไม่ได้เปลี่ยนให้เป็นฟอนต์ของ pdf ที่สร้างใหม่ (เข้าใจผิดว่าต้องใช้ชื่อฟอนต์เหมือน PHPExcel)
สรุปว่าแค่ตรงนี้ครับ
Excel :
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('Angsana New');
PDF :
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('angsa'); // ของผมสร้างใช้ชื่อ angsa
=============
***Zend_pdf ก็เยี่ยมนะครับ เป็นอีกทางเลือกที่น่าสนใจ แล้วก็จะได้เล่นตัวอื่นๆ ของ Zend ด้วย
----
ปล.
ผมหาฟอนต์ใน http://komsitr.net/?p=18 ไม่เจอ ไม่รู้อยู่ลิงค์ไหน
แต่ไม่เป็นไร ใช้ utils ของ tcpdf สร้างเอาก็ได้ครับ วิธีใช้ก็อยู่ในนั้นแหละ
|
 |
 |
 |
 |
Date :
2011-01-19 11:38:25 |
By :
เอ็ม |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมทำเหมือนคุณไวย์วิทย์เด้เลยครับ แต่ผมไปหาอ่านในเน็ตที่เว็บไหนมะรู้ไม่ได้แล้ว
แต่ว่าไม่ทราบว่าคนอื่นเป็นเหมือนผมปะเวลาเรา setCellValue('A1','A')
แบบนี้คือจะใส่ตัวอักษรอังกฤษตัวเดียวลงไปใน cell มันไม่ได้ มันจะเป็นค่าว่างเลยครับ ไม่ว่าตัวไรก็ตาม a-z
แก้ยังไงกันหรอ 
|
 |
 |
 |
 |
Date :
2011-01-20 09:35:46 |
By :
naskw |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คุณ Anu ออกเป็น xls หรือ pdf ครับ ที่ไม่ได้ ของผมปกติหน่ะครับ
Code (PHP)
<?php
/** PHPExcel */
require_once 'Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set properties
$objPHPExcel->getProperties()->setCreator("test");
// Add some data
$txt = range('A','D');
for($i=0; $i< 8; $i++){
foreach($txt as $key => $val)
{
// Set column widths
$objPHPExcel->getActiveSheet()->getColumnDimension(''.$val.'')->setWidth(10);
$objPHPExcel->getActiveSheet()->getRowDimension(''.$i.'')->setRowHeight(23);
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue(''.$val.''.$i.'', ''.$val.'');
$objPHPExcel->getActiveSheet()->getStyle(''.$val.''.$i.'')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle(''.$val.''.$i.'')->getFill()->getStartColor()->setARGB('5cb3fc');
}
}
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('test');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Create a new worksheet, after the default sheet
$objPHPExcel->createSheet();
/** PHPExcel_IOFactory */
require_once './Classes/PHPExcel/IOFactory.php';
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save(''.iconv('UTF-8','TIS-620','ทดสอบ').'.xls');
?>
คุณ Anu ไม่ทราบว่าได้สร้าง font เอง หรือเปล่าครับ ผมลองไปโหลดฟ้อนจาก f0nt.com ซึ่งเป็น ttf มาทดลองสร้างเองตามในเว็บของ
tcpdf และก็ได้ไฟล์ .php , .ctg.z และ .z มาแล้วก็อบไปวาง ที่โฟลเดอร์ font มันไม่ได้ ครับ
ตัวอักษรมันเป็นสี่เหลี่ยมหมด แนะนำวิธีสร้างที่ถูกต้องทีครับ
ผมอ่านจาก
http://sandeepverma.wordpress.com/2009/12/10/create-tcpdf-php-fonts/
http://www.tcpdf.org/fonts.php
สองลิงค์นี้แหระครับ
|
 |
 |
 |
 |
Date :
2011-01-20 10:05:49 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้มาจาก http://phpexcel.codeplex.com/workitem/14233
You must change the PHPExcel/Shared/String.php with the file attach
The only change is line 306
Code (PHP)
if (!@iconv('UTF-8', 'UTF-16LE', 'x')) {
to
Code (PHP)
if (!@iconv_substr('A', 0, 1, 'UTF-8')) {
แก้ปัญหาข้างบนได้แต่ ไม่รู้ว่าจะมีผลกะอย่างอื่นอีกหรือเปล่าต้องลองดู 
|
ประวัติการแก้ไข 2011-01-20 10:06:44
 |
 |
 |
 |
Date :
2011-01-20 10:06:01 |
By :
naskw |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
หมายถึงแก้ตัว A ที่เขียนลงไม่ได้หรือว่าแก้การสร้าง อักษร ครับ
|
 |
 |
 |
 |
Date :
2011-01-20 10:11:50 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอนนนี้แก้ไข Write PDF ภาษาไทย ได้แล้วครับ ทำเหมือนคุณไวยวิทย์ทำครับ แต่ผมไม่ได้สร้าง Font เองครับไปโหลดมาเหมือนกัน
แต่จำไม่ได้ว่าเอามาจากไหน อิๆ
ส่วนอีกเรื่องนึงคือการใส่ค่าตัวอักษรภาษาอังกฤษตัวเดียว A-Z ก็ได้แล้วครับทำแบบความเห็นที่ 14 อันนี้ ออกเป็น XLS นะครับ ส่วน PDF ไม่ได้ลอง
|
 |
 |
 |
 |
Date :
2011-01-20 10:29:34 |
By :
naskw |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมว่าใครมีปัญหาอะไรเกี่ยวกับตัว PHPExcel มาโพสในนี้ละกัน เผื่อจะช่วยกันได้ จะได้ลดเวลาการทำงานดีกว่ามานั่งงมเอง เอาประสบการณ์มาแชร์กัน เพราะคิดว่าน่าจะใช้กันเยอะอยู่ ผมเพิ่งลองใช้ตัวนี้เหมือนกันยอมรับว่าแจ่มมากๆ ได้ใช้หลายงานละ 
|
 |
 |
 |
 |
Date :
2011-01-20 11:01:22 |
By :
naskw |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมลองสร้างฟอนท์เองแล้วใช้ไม่ได้
ใครเคยทำ แนะนำด้วยหน่ะครับ
|
 |
 |
 |
 |
Date :
2011-01-20 12:48:25 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มีปัญหาใหม่อีกละครับตอนนนี้ทำไฟล์ CSV ตัวอย่างนะครับไฟล์ที่ได้ออกมาตอนนี้เป็นแบบนี้
แถวแรกผมใส่ข้อมูลถึงคอลัมน์ I แถวที่สองใส่ข้อมุลถึงคอลัมน์ C
แถวที่1:A,,,,,,,,I,
แถวที่2: A,,C,,,,,,
สังเกตตรงแถวที่2หลังตัว C จะมีเครื่องหมาย , เพิ่มมาอีก6ตัว แต่ผมต้องการให้มันเพิ่มมาอีกแค่ 1 ต้องทำไง
แบบนี้ที่ต้องการ
แถวที่1:A,,,,,,,,I,
แถวที่2: A,,C,
|
 |
 |
 |
 |
Date :
2011-01-20 14:02:53 |
By :
naskw |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คุณ Anu เขียนยังไงเหรอครับ ผมยังไม่ได้ลองออก csv ด้วยสิ
|
 |
 |
 |
 |
Date :
2011-01-20 14:21:37 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ก็เขียนเหมือนจะออก XLS นะแหละครับ แต่ตอน Write เปลี่ยนมา Write เป็นแบบ CSV
Code (PHP)
$objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
$objWriter->setDelimiter(',');
$objWriter->setEnclosure('');
//$objWriter->setLineEnding("\r\n");
$objWriter->setSheetIndex(0);
$objWriter->save($save_path);
ถ้ายังทำไม่ได้เดี๋ยวจะไปใช้การเขียนไฟล์แบบธรรมดาของ PHP แล้วคั้นด้วย , เอาขี้เกียจหา เดี๋ยวจะไม่ทัน อิๆ
|
 |
 |
 |
 |
Date :
2011-01-20 14:31:57 |
By :
naskw |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้ PHPExcel สร้างไฟล์ excel ขึ้นมาโดยดึงข้อมูลจาก mysql แต่ว่าข้อมูลที่เป็นภาษาไทยเป็น ????? หมดเลย
ไม่ทราบว่าต้องแก้ไขยังไงคะ
โค้ดที่ใช้ ExportMySql2Excel.php จากลิ้งนี้ค่ะ https://www.thaicreate.com/community/phpexcel-and-mysql.html
ขอบคุณล่วงหน้าค่ะ
|
 |
 |
 |
 |
Date :
2012-06-26 15:17:33 |
By :
yuyu |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ส่งสัยได้เพขียนวิธีแก้ปัญหาภาษาไทยซะล่ะ
|
 |
 |
 |
 |
Date :
2012-06-26 16:28:39 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เปลี่ยนแค่ตรงนี้ได้เลยครับ
จากเดิม tis620
mysql_query("set names tis620");
เปลี่ยนเป็น
mysql_query("set names utf8");
ผมเคยใช้ class.writeexcel_worksheet.inc มันต้องใช้ tis620 ถึงจะอ่านไทยได้
แต่เปลี่ยนมาใช้ PHPExcel ต้องเปลี่ยนกลับเป็น utf8 ครับ
ลองดูเน้อออ
|
 |
 |
 |
 |
Date :
2014-02-18 11:17:47 |
By :
supaman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
่้่้ส้่าส
|
 |
 |
 |
 |
Date :
2019-05-24 15:29:36 |
By :
้่าส้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|