|  | 
	                
  
    | 
	 
        import file.csv แล้วข้อมูลมันกระเถิบไปเป็น record ใหม่ค่ะ งง มา 3 วันแล้ว ช่วยตอบด้วยนะคะ T-T     |  
    |  |  
 
              
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ขอดูไฟล์ Excel นามสกุล CSv หน่อยคับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 14:11:37 | By :
                            compeng |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ผมไม่ทราบว่าเป็นทุกไฟล์หรือเปล่า หรือเป็นแค่บางไฟล์ครับ แต่ผมอยากให้คุณลองเปลี่ยนวิธีการอ่านไฟล์ CSV จากฟังชันก์ของ PHP มาเป็นตัว PHPExcel ผมว่าน่าจะแหล่มกว่า(โดยส่วนตัวผมว่างั้นอะ) ดาวน์โหลดได้จากตรงนี้ http://phpexcel.codeplex.com/
 ความสามารถหลักของมัน(เท่าที่ผมเคยลองนะและอ่านคร่าว)
 
 1.สร้างและอ่านไฟล์ *.xls, *.xlsx
 2.สร้างไฟล์ PDF
 3.สร้าง และอ่าน CSV
 
 ไม่รู้ว่าเคยใช้หรือเปล่าครับ ลองดูโค้ดง่ายดูนะ
 Code (PHP)
 
 	require_once '../lib/PHPExcel.php';// include เข้ามาก่อน		
	
	// Read CSV
	$objReader = new PHPExcel_Reader_CSV();// สร้าง object ของ Class PHPExcel_Reader_CSV 
	$objReader->setInputEncoding('CP1252');// กำหนดค่าต่างตามนี้
	$objReader->setDelimiter(',');
	$objReader->setEnclosure('');
	$objReader->setLineEnding("\r\n");
	$objReader->setSheetIndex(0);
	$objPHPExcel = $objReader->load("file_csv.csv");	//<====File Path
	$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
	$strSql = "INSERT INTO tb_name(field1,field2) VALUES "; //<======= SQL
                //วนลูบดึงข้อมูลมาสร้างคำสั่ง SQL แต่ยังไม่คิวรี่นะ
	for($i=2; $i<=$objWorksheet->getHighestRow(); $i++){// $i=2 คือให้เริ่มอ่านข้อมูลจากไฟล์บรรทัดที่2 บรรทัดแรกเป็นหัวคอลัมน์ครับ
		$strSql  .= "('".$objWorksheet->getCell('A'.$i)->getValue()."',";
		$strSql  .= "'".$objWorksheet->getCell('B'.$i)->getValue()."'),";
	}
	$strSql = substr($temp_sql,0,strlen($temp_sql)-1);// ตัดเครื่องหมาย , ออก
	$objPHPExcel->disconnectWorksheets();
                
                 // มาคิวรี่ตรงนี้ทีเดียวเลยครับ
                 // connect Database ให้เรียบร้อยแล้วคิวรี่ซะ
                 mysql_query($strSql)or die(mysql_error());
 ลองแกะโค้ดดูนะครับ ไม่ยากหรอกครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 14:21:01 | By :
                            naskw |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | @King_R_Ther ให้มาเป็นภาพตัวอย่างนะคะ ถ้าอยากได้แบบไฟล์ .csv เลย รบกวนบอกมาอีกทีค่ะ ^^
 
  
 @anu
 ขอบคุณค่ะ เดี๋ยวจะลองดูก่อน
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 14:47:13 | By :
                            น้อง |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ขอดูไฟล์ csv ในที่เปิด notepage หน่อยครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 15:00:51 | By :
                            tingtongkub |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | @tong copy ข้อความมาเลยแล้วกันนะคะ ^^ ที่เห็นด้านล่างจะมีข้อมูลถึงรหัส (id) ที่ 4 ถ้าดูตามภาพด้านบนคือรหัสแรกที่มีปัญหาค่ะ (รหัส 2 ข้อมูลปกติ เริ่มเพี้ยนตั้งแต่รหัส 4 ลงมาเรื่อยๆ ค่ะ
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 id,product,chemical,advantage,che_no,cas_no,imdg_no,risk_phy,risk_health,risk_env,status,color,smell,ph,boiling,melting,freezing,dangr,breathes,alimentary,eye,skin,body,tool1,tool2,tool3,tool4,tool5,tool6,tool7,tool8,heal_smell,healtouch,heal_eye,heal_eat,move,careful,protect,absorb,fire_off,careful_spe,abandon,destroy
 2,Barium sulfate,Barium sulfate,ใช้ในการตรวจวินิจฉัย รักษา,10,7727-43-7,1564,5,2,0,ผงของแข็ง,ขาวหรือเหลือง,ไม่มีกลิ่น,10,-,1580,-,,เป็นอันตรายต่อทางเดินหายใจ,เป็นอันตรายต่อทางเดินอาหาร,ก่อให้เกิดการระคายเคือง,ก่อให้เกิดการระคายเคือง,สัมผัสเป็นเวลานานเกิดโรคปอดจากฝุ่นแบเรียม,,2,,4,5,,,,ให้เคลื่อนย้ายผู้ป่วยออกสู่บริเวณที่มีอากาศบริสุทธิ์ นำส่งแพทย์,ฉีดล้างด้วยน้ำปริมาณมากอย่างน้อย 15 นาที,ฉีดล้างตาทันทีด้วยน้ำปริมาณมากอย่างน้อย 15 นาที นำส่งแพทย์,ถ้าผู้ป่วยมีสติให้ดื่มน้ำหรือนม 2-4 แก้ว แล้วนำส่งแพทย์,เก็บในที่แห้งและเย็น มีการระบายอากาศที่ดี,สวมอุปกรณ์ป้องกันอันตราส่วนบุคคล หลีกเลี่ยงการทำให้เกิดฝุ่น เก็บส่วนที่หกรั่วไหลในภาชนะที่ปิดมิดชิด,ล้างบริเวณหกรัวไหลด้วยน้ำปริมาณมาก ๆ,-,ถังดับเพลิง สายน้ำดับเพลิง,กรณีเกิดไฟไหม้ สวมอุปกรณ์ช่วยหายใจชนิด SCBA ชุดป้องกันสารเคมี,ตามระบบการจัดการของเสียอันตราย,ตามกฎระเบียบที่ราชการกำหนด
 4,Sulfuric acid,Sulfuric acid,ใช้ในการเตรียมสารทางห้องปฏิบัติการ,81,7664-93-9,1830,6,4,0,ของเหลว,ไม่มีสี,ไม่มีกลิ่น,-,276,-,-1 ถึง -30,มีฤทธิ์กัดกร่อน,ก่อให้เกิดการระคายเคืองต่อระบบทางเดินหายใจ ทำให้มีอาการน้ำท่วมปอด เจ็บคอ ไอ หายใจติดขัด และหารยใจถี่รัว การหายใจเอาสารที่ความเข้มข้นสูงอาจทำให้เสียชีวิตได้,ทำให้คลื่นไส้ อาเจียน แต่ไม่มีผลต่อเนื้อเยื่อ,ทำให้ตาแดง ปวดตา และสายตาพร่ามัว,ทำให้เป็นแผลไหม้ และปวดแสบปวดร้อน,มีผลทำลายฟัน ระบบหลอดเลือดเลี้ยงหัวใจ,,2,,4,5,6,,,ให้เคลื่อนย้ายผู้ป่วยออกสู่บริเวณที่มีอากาศบริสุทธิ์ ถ้าผู้ป่วยหยุดหายใจให้ช่วยผายปอด หายใจติดขัดให้ออกซิเจนช่วย รักษาร่างกายผู้ป่วยให้อบอุ่นและอยู่นิ่ง นำส่งไปพบแพทย์,ให้ฉีดล้างผิวหนังทันทีด้วยน้ำปริมาณมากอย่างน้อย 15 นาที นำส่งไปพบแพทย์,ให้ฉีดล้างตาทันทีด้วยน้ำปริมาณมากอย่างน้อย 15 นาที นำส่งไปพบแพทย์,อย่ากระตุ้นให้เกิดการอาเจียน ให้ผู้ป่วยบ้วนล้างปากด้วยน้ำ ให้ผู้ป่วยดื่มน้ำ 200-300 มิลลิลิตร นำส่งไปพบแพทย์,เก็บในภาชนะบรรจุที่ปิดมิดชิด เย็นและแห้ง มีการระบายอากาศเพียงพอ และห่างจากแสง ไอน้ำ เบสแก่,สวมใส่อุปกรณ์ป้องกันอันตรายที่เหมาะสม จัดเก็บโดยใช้อุปกรณ์ใน Spill kit box,ป้องกันไม่ให้สารเคมีที่หกรั่วไหล ไหลลงสู่ท่อระบายน้ำ แม่น้ำ และแหล่งอื่นๆ,สารอัลคาไลด์ เช่น โซดาแอ๊ซ สารอนินทรีย์ หรือดิน,ใช้คาร์บอนไดแกไซด์ ผงเคมีแห้ง น้ำ,อาจทำให้เกิดเพลิงไหม้และการระเบิดได้,รวบรวมใส่ภาชนะบรรจุที่ปิดมิดชิดเพื่อนำไปกำจัด,ให้เป็นไปตามกฎระเบียบที่ทางราชการกำหนด
 - - - - - - - - - - - - - - -
 ขอบคุณค่ะ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 15:07:48 | By :
                            น้อง |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ผมว่าน่าจะเกิดจากการที่ length ของข้อมูลบรรทัดที่มันเด้งไปอีก record มันยาวเกินกว่าที่คุณกำหนดในฟังชั่นก์ fgetcsv($FILE,ตรงนี้)หรือเปล่า แนะนำเพิ่มเติมนะครับ ช่วงบรรทัดที่ 14- 20 อันนนี้เอาไปไว้ข้างนอก loop จะดีกว่าผมว่า คงไม่ต้อง connect database ทุกรอบนะครับ รอบเดียวก็พอ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 15:15:49 | By :
                            naskw |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | @anu run แล้วเป็นแบบนี้ค่ะ
 Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 768 bytes) in C:\AppServ\www\msds\lib\Classes\PHPExcel\Cell.php on line 964- - - - - - -
 tb_msds.csv : 251 KB
 tb_msds.xls : 356 KB
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 15:19:03 | By :
                            น้อง |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ปกติถ้าเราไม่ทราบจำนวนข้อมูลที่จะเก็บผมจะใช้เป็น text แทน vachar ครับ  แล้ว ก็ เวลา export ผมว่าน่าจะใช้ " ด้วยนะครับ เช่น ลำดับที่    ชื่อ  วดป
 "1","นายสมชาย","10/12/2500"
 
 ลองดูในนี้
 
 https://www.thaicreate.com/php/php-convert-csv-to-mysql.html
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 15:23:24 | By :
                            tingtongkub |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ขอดูโค้ดหน่อยครับ ขอข้อมูลในไฟล์ csv ทั้งไฟล์เลยนะโพสขึ้นเว็บเลยเหมือนโพสใน No.5 เดี่ยวดูให้ครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 15:25:34 | By :
                            naskw |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | // Remove bymr.win 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 15:41:36 | By :
                            น้อง |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ลองเอาอันนี้ไป แล้วลองแก้ดูครับ 
 upload.php  << ไว้ browse file
 Code (PHP)
 
 <form name="form1" method="post" action="import_files.php" enctype="multipart/form-data" >
  <input type="file" name="uploadedfile">
  <input type="submit" name="Submit" value="Submit">
</form>
 
 
 
 
 import_files.php  << ไว้ upload และ import
 Code (PHP)
 
 <?
$uploadedfile=$HTTP_POST_FILES["uploadedfile"]["tmp_name"];
$uploadedfilename=$HTTP_POST_FILES["uploadedfile"]["name"];
$uploadedfiletype=$HTTP_POST_FILES["uploadedfile"]["type"];
$uploadedfilesize=$HTTP_POST_FILES["uploadedfile"]["size"];
echo "$uploadedfilename";
 $host = 'localhost'; 
   $user = 'root';  
   $pass = '123456';
   $dbname = 'mydatabase_test'; 
   $conn = mysql_connect("$host","$user","$pass");
   mysql_select_db("$dbname",$conn);
   mysql_query("SET NAMES UTF8",$conn);
if ($uploadedfile != "") // ตรวจสอบว่ามีไฟล์ส่งมาหรือไม่ 
{
   if(strchr($uploadedfilename,".")==".csv") //เช็คนามสกุล
   {
      copy($uploadedfile,"file/".$uploadedfilename); // Copy File ไว้ที่ Folder File
      $FILE = fopen( "file/".$uploadedfilename, "r");
      $i=1;
      while (!feof($FILE))
      {
      $READ = fgets($FILE,2048);
      $DATA = explode(',',$READ);
      if ($i>1) //ไม่อ่านแถวแรกสุด เพราะแถวแรกสุดคือ หัวฟิลล์
         {
         echo $DATA[0]." "; //ส่วนนี้ผมไว้ดูเฉยๆ ว่ามีแถวอะไรบ้าง
         echo $DATA[1]." ";
         echo $DATA[2]."<br>";
         mysql_query("INSERT INTO user(id,name,email) VALUES ($DATA[0],$DATA[1],$DATA[2])");
         }
      $i++;
      }
   }
   else
   {
      echo "file is not .csv"; 
   }
}
?>
</table>
</body>
</html>
 |  
              | 
 ประวัติการแก้ไข
 2011-03-04 15:55:50
 2011-03-04 15:55:57
 2011-03-04 15:56:01
 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 15:54:50 | By :
                            tingtongkub |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ผมลองอ่านทั้งไฟล์ขึ้นมาไม่มี Error นะครับ แต่คุณต้องแก้ตรงคอมเมนต์ (1) ให้ใส่ชื่อฟิลด์ที่ต้องการจะ INSERT ซะ
 สุดท้ายจะได้คำสั่ง SQL เก็บในตัวแปร $strSQL ลองเอาไปรันดูได้ปะ
 
 Code (PHP)
 
 <?php
require("lib/PHPExcel.php");
$objReader = new PHPExcel_Reader_CSV();// สร้าง object ของ Class PHPExcel_Reader_CSV 
$objReader->setInputEncoding('CP1252');// กำหนดค่าต่างตามนี้
$objReader->setDelimiter(',');
$objReader->setEnclosure('');
$objReader->setLineEnding("\r\n");
$objReader->setSheetIndex(0);
$objPHPExcel = $objReader->load("testcsv.csv");	//<====File Path
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$strSql = "INSERT INTO tb_name(field1,field2) VALUES "; //<======= (1)
//วนลูบดึงข้อมูลมาสร้างคำสั่ง SQL แต่ยังไม่คิวรี่นะ
for($i=2; $i<=$objWorksheet->getHighestRow(); $i++){// $i=2 คือให้เริ่มอ่านข้อมูลจากไฟล์บรรทัดที่2 บรรทัดแรกเป็นหัวคอลัมน์ครับ
  $strSql  .= "('".$objWorksheet->getCell('A'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('B'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('C'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('D'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('E'.$i)->getValue()."',";  
  $strSql  .= "('".$objWorksheet->getCell('F'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('G'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('H'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('I'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('J'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('K'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('L'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('M'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('N'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('O'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('P'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('Q'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('R'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('S'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('T'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('U'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('V'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('W'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('X'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('Y'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('Z'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AA'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AB'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AC'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AD'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AE'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AF'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AG'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AH'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AI'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AJ'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AK'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AL'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AM'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AN'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AO'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('AP'.$i)->getValue()."',";        
  $strSql  .= "'".$objWorksheet->getCell('AQ'.$i)->getValue()."'),";
  
}
$strSql = substr($strSql,0,strlen($strSql)-1);// ตัดเครื่องหมาย , ออก 
$objPHPExcel->disconnectWorksheets();
?>
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 16:01:48 | By :
                            naskw |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ขอแก้ไขเพิ่มเติมนะครับ อิๆ ตรงนี้ลองแก้เป็น UTF-8 $objReader->setInputEncoding('UTF-8');//
 
 แล้วก็ไฟล์ CSV ให้เปิดด้วย Editplus แล้ว save as กำหนด ให้เป็น utf8 ด้วยภาษาไทยจะได้ไม่เพี้ยน
 
  
 ติดตรงไหนถามมาได้เลยครับ ถ้าช่วยได้จะช่วย วันนี้ผมทำงานยาวเลย น่าจะเที่ยงคืนถึงจะกลับ *-*
 
 |  
              | 
 ประวัติการแก้ไข
 2011-03-04 16:28:21
 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 16:15:52 | By :
                            naskw |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | @tong ขอบคุณค่ะ ตอนนี้กำลังลองทำอยู่ ติดปัญหานิดหน่อย ที่มันไม่ยอมลง DB (มีแค่รหัสที่รันตั้งแต่ 1-จำนวน record จริงของ file.csv) แต่คิดว่าอ่าน file ได้นะคะเพราะ echo ออกมาถูกแล้ว จะลอง check code ดูใหม่ค่ะ
 
 @anu
 เอ่อ ยังไงดีล่ะ ถ้ากำหนด path ตรงคำสั่ง require เหมือนที่บอกมามันจะ error ตามภาพเนี้ยค่ะ -*-
 
  
 ซึ่งน้องลองเปลี่ยน path ตามที่ file PHPExcel.php อยู่จริงๆ
 
  
 ปรากฏว่ามัน Error เหมือนที่เคยบอก (สรุปคือมัน Error อยู่ดี เฮ้อ เซ็งตัวเอง คุณ@anu ทำไม่ error แต่ทำไมน้องทำแล้ว error หว่า)
 
  - - - - - - - - - -
 อันนี้คือ code ที่แก้ไขจากคุณ @anu ค่ะ
 Code (PHP)
 
 <?php
require("lib/PHPExcel.php");
$objReader = new PHPExcel_Reader_CSV();// สร้าง object ของ Class PHPExcel_Reader_CSV 
$objReader->setInputEncoding('CP1252');// กำหนดค่าต่างตามนี้
$objReader->setDelimiter(',');
$objReader->setEnclosure('');
$objReader->setLineEnding("\r\n");
$objReader->setSheetIndex(0);
$objReader->setInputEncoding('UTF-8');//
$objPHPExcel = $objReader->load("tb_msds.csv");	//<====File Path
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$strSql = "INSERT INTO tb_msds (id,product,chemical,advantage,che_no,cas_no,imdg_no,risk_phy,risk_health,risk_env,status,color,smell,ph,boiling,melting,freezing,dangr,breathes,alimentary,eye,skin,body,tool1,tool2,tool3,tool4,tool5,tool6,tool7,tool8,heal_smell,heal_touch,heal_eye,heal_eat,move,careful,protect,absorb,fire_off,careful_spe,abandon,destroy) VALUES('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]','$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$data[27]','$data[28]','$data[29]','$data[30]','$data[31]','$data[32]','$data[33]','$data[34]','$data[35]','$data[36]','$data[37]','$data[38]','$data[39]','$data[40]','$data[41]','$data[42]')"; //<======= (1)
//วนลูบดึงข้อมูลมาสร้างคำสั่ง SQL แต่ยังไม่คิวรี่นะ
for($i=2; $i<=$objWorksheet->getHighestRow(); $i++){// $i=2 คือให้เริ่มอ่านข้อมูลจากไฟล์บรรทัดที่2 บรรทัดแรกเป็นหัวคอลัมน์ครับ
  $strSql  .= "('".$objWorksheet->getCell('id'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('product'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('chemical'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('advantage'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('che_no'.$i)->getValue()."',";  
  $strSql  .= "('".$objWorksheet->getCell('cas_no'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('imdg_no'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('risk_phy'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('risk_health'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('risk_env'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('status'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('color'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('smell'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('ph'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('boiling'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('melting'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('freezing'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('dangr'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('breathes'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('alimentary'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('eye'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('skin'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('body'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('tool1'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('tool2'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('tool3'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('tool4'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('tool5'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('tool6'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('tool7'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('ool8'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('heal_smell'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('healtouch'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('heal_eye'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('heal_eat'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('move'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('careful'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('protect'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('absorb'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('fire_off'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('careful_spe'.$i)->getValue()."',";
  $strSql  .= "('".$objWorksheet->getCell('abandon'.$i)->getValue()."',";        
  $strSql  .= "'".$objWorksheet->getCell('destroy'.$i)->getValue()."'),";
  
}
$strSql = substr($strSql,0,strlen($strSql)-1);// ตัดเครื่องหมาย , ออก 
$objPHPExcel->disconnectWorksheets();
?>
- - - - - - - - - - - - - - - - - - -
 อ้อ รบกวนอีกอย่างค่ะ คือ post 10 มันเยอะมาก เครื่องพาลจะค้าง อยากลบออกแต่เข้าใจว่า ไม่ใช่สมาชิกจึงไม่สามารถแก้ไขได้ มีวิธีการไหนที่สามารถลบออกได้บ้างใหมคะ (ปัญหาเก่ายังแก้ไม่ได้ ขอคำถามใหม่ซะแล้ว ^^)
 
 ขอบคุณทุกท่านที่กรุณาช่วยค่ะ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 17:06:48 | By :
                            น้อง |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | โค้ดหน้านี้ของคุณอยู่ folder ไหน ถ้าอยู่ที่ www ให้ include ดังนี้
 Code (PHP)
 
 require("msds/lib/Classes/PHPExcel.php");
แปปไปหาไรกินก่อนเด๋วมาต่อ
 
 มาละ ถ้าอยู่ที่ msds
 Code (PHP)
 
 require("lib/Classes/PHPExcel.php");
 ส่วน error Allowed memory เอาไว้ก่อนเอานี่ให้ผ่านก่อน
 
 |  
              | 
 ประวัติการแก้ไข
 2011-03-04 17:30:24
 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 17:23:24 | By :
                            naskw |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | error Allowed memory ...... น่าจะเกิดจาก Memory ไม่พอที่จะใช้รันสคริบ และเก็บข้อมูลขณะรันต้องไปแก้ไขในไฟล์ php.ini ที่ folder Windows
 1.ไปที่ปุ่ม Start->Run พิมพ์ php.ini กด Enter
 2.Find หาคำว่า memory_limit แล้วเพิ่มค่าตัวเลขให้มากกว่าเดิมลองดู
 3.Save File
 4.Restart Apache ไปที่ Start->Run พิมพ์ Services.msc กด Enter
 5.เลือก Service ที่ชือว่า Apache2.2 แล้วกดปุ่ม Restart ซะ
 6.แล้วลองรัน สคริบดูใหม่ ถ้าไม่ได้ลองเพิ่ม memory limit ขึ้นไปอีก ทำเหมืนอเดิมอะ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 18:07:23 | By :
                            naskw |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | wด้ไม่ได้ยังไงบอกด้วยนะครับ จะได้ ช่วยดูไห้อีกที 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-03-04 21:47:35 | By :
                            tingtongkub |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | รบกวนช่วยดูโค้ดให้หน่อยค่ะ พอดีใช้ PHPExcel  ตามที่แนะนำแล้วนะคะ แต่เมื่อทำการรันแล้วปรากฏว่ามัน Error นะคะ รายละเอียดตามนี้ และจะเช็คเพิ่มตรงที่ว่าถ้าอ่าน ตารางแรกเสร็จ แล้ว insert  แล้วให้ไปอ่านตารางที่สอง ต้องทำยังไงค่ะ
 
 Fatal error: Uncaught exception 'PHPExcel_Exception' with message 'Invalid cell coordinate CONTENT_TYPE3' in C:\AppServ\www\Read\Classes\PHPExcel\Cell.php:539 Stack trace: #0 C:\AppServ\www\Read\Classes\PHPExcel\Worksheet.php(1121): PHPExcel_Cell::coordinateFromString('CONTENT_TYPE3') #1 C:\AppServ\www\Read\read_csv.php(19): PHPExcel_Worksheet->getCell('content_type3') #2 {main} thrown in C:\AppServ\www\Read\Classes\PHPExcel\Cell.php on line 539
 อันนี้ Path C:\AppServ\www\Read\Classes
 
 read.php
 Code (PHP)
 
 <?
// include เข้ามาก่อน		
include ("Classes/PHPExcel.php"); 
// Read CSV
$objReader = new PHPExcel_Reader_CSV();// สร้าง object ของ Class PHPExcel_Reader_CSV 
$objReader->setInputEncoding('CP1252');// กำหนดค่าต่างตามนี้
$objReader->setDelimiter(',');
$objReader->setEnclosure('');
$objReader->setLineEnding("\r\n");
$objReader->setSheetIndex(0);
$objReader->setInputEncoding('UTF-8');
$objPHPExcel = $objReader->load("test.csv");	//<====File Path
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$strSql = "INSERT INTO test(day,content_type,policy,embed_views,watch_views,youtube_sold_revenue,partner_sold_revenue,afv_revenue,amount_payable,estimated_rpm) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')"; //<======= SQL
//วนลูบดึงข้อมูลมาสร้างคำสั่ง SQL แต่ยังไม่คิวรี่นะ
for($i=3; $i<=$objWorksheet->getHighestRow(); $i++){// $i=2 คือให้เริ่มอ่านข้อมูลจากไฟล์บรรทัดที่2 บรรทัดแรกเป็นหัวคอลัมน์ครับ
	$strSql  .= "('".$objWorksheet->getCell('day'.$i)->getValue()." ',";
	$strSql  .= "('".$objWorksheet->getCell('content_type'.$i)->getValue()." ',";
	$strSql  .= "('".$objWorksheet->getCell('policy'.$i)->getValue()." ',";
	$strSql  .= "('".$objWorksheet->getCell('embed_views'.$i)->getValue()." ',";
	$strSql  .= "('".$objWorksheet->getCell('watch_views'.$i)->getValue()." ',";
	$strSql  .= "('".$objWorksheet->getCell('youtube_sold_revenue'.$i)->getValue()." ',";
	$strSql  .= "('".$objWorksheet->getCell('partner_sold_revenue'.$i)->getValue()." ',";
	$strSql  .= "('".$objWorksheet->getCell('afv_revenue'.$i)->getValue()." ',";
	$strSql  .= "('".$objWorksheet->getCell('amount_payable'.$i)->getValue()." ',";
	$strSql  .= " '".$objWorksheet->getCell('estimated_rpm'.$i)->getValue()." '),";
}
$strSql = substr($strSql,0,strlen($strSql)-1);// ตัดเครื่องหมาย , ออก
$objPHPExcel->disconnectWorksheets();
// มาคิวรี่ตรงนี้ทีเดียวเลยครับ
 // connect Database ให้เรียบร้อยแล้วคิวรี่ซะ
 mysql_query($strSql)or die(mysql_error());
?>
 ไฟล์ test.csv
 
 
 # day table
 
 day	content_type	policy	embed_views	watch_views	youtube_sold_revenue	partner_sold_revenue	afv_revenue	amount_payable	estimated_rpm20121201	commercial	block	0	25	0	0	0	0
 20121202	commercial	block	0	36	0	0	0.098994	0.049002
 20121203	commercial	block	1	46	0.006983	0	0	0.002513
 20121204	commercial	block	0	13	0	0	0	0
 20121205	commercial	block	0	26	0	0	0	0
 20121206	commercial	block	3	41	0	0	0	0
 
 
 # grand total table
 
 embed_views	watch_views	ad_enabled_views	youtube_sold_revenue	partner_sold_revenue	afv_revenue	amount_payable	estimated_rpm		2115956	82392993	8391538	2000.553765	0	16669.81778	8984.627104	1.07
 
 
 # country table
 
 country	content_type	policy	embed_views	watch_views	youtube_sold_revenue	partner_sold_revenue	afv_revenue	amount_payable	estimated_rpmDE	commercial	block	17	852	0.020457	0	0.098994	0.056365
 TH	commercial	block	0	1	0	0	0	0
 AD	commercial	free	0	3	0	0	0	0
 AF	commercial	free	2	4	0	0	0	0
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-03-15 17:27:49 | By :
                            ฟ้า |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | @Guest เจ้าของกระทู้ รบกวนขอ Email ติดต่อเพื่อสอบถามข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ ได้ไหมค่ะ  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2017-01-31 10:06:24 | By :
                            ฺฺBoww |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  |  |