|
|
|
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_rpm
20121201 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_rpm
DE 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|