[英]Import Excel into SQL database using php
我到处都在寻找该代码,但是其中大多数是专用的,或者只是有错误,没有任何作用。
我想使用php代码将Excel文件导入到我的sql数据库中。 到目前为止,我已经尝试了5种代码和插件(在github中),但是最后的代码效果最好,但是仍然无法正常工作。
$file = "../uploads/".$newfilename;
//echo $file;
$file_open = fopen($file,"r");
while(($csv = fgetcsv($file_open, 1000, ";")) !== false)
{
$data = array_map("utf8_encode", $csv);
print_r($data);
$name = $csv[0];
$pro_name = $csv[0];
$brand = $csv[0];
$tell = $csv[0];
try{
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $db->prepare("INSERT INTO companies
(company_name, pro_name, brand, tell)
VALUES(:a1, :a2, :a3, :a4)");
$stmt->bindparam(':a1',$name);
$stmt->bindparam(':a2',$pro_name);
$stmt->bindparam(':a3',$brand);
$stmt->bindparam(':a4',$tell);
$stmt->execute();
echo 'done';
}catch(PDOException $e){
//echo "error";
}
}
这段代码的结果是:
Array
(
[0] => PK!ª÷X¤z[Content_Types].xml ¢( ÌTÉjÃ0½úF×+I¡'.Ç6ôklØÐLÒäï
[1] => vJÈi ½ØØÒ¼eyѪ*£%4Î&¢wE6uÚØ<ӷΣժt±£áíÍ`ºöW[LDAä¤Ä´Jaì<X>É\¨ñgÈ¥Wé\å ûÝîL%°Ô¡C/©EIÑëoÌÑóæ^Må}iRE,T.> é¸,3)h.*ÑPªÊØÃaDl<Ê Äv¤[W1W6°0ïØú úä´«mÝ#
ÑXzW{«R~¹097Ï´mMÓ¢¸RÆîtáo.£l^½+©ý5À-uôÿû?ÒA¼s çïGÒÀ\Òº¼²Û
è%æBÐâmί.à'ö91ãà<rhß]dÔÕÏ@ÈÀ>4-ß#°=áA0B±ônÙdúðÿÿPK!µU0#õL_rels/.rels ¢(
)
我也删除了这一行: $data = array_map("utf8_encode", $csv);
但这没有任何区别。
(注意:我必须使用utf8 unidcode,因为我有波斯语单词需要在数据库中编写!)
有什么办法吗?
fgetcsv
因此假设给定的excel文件格式为CSV。 print_r($data);
语句,因此无论如何都不是结果),表明该文件是压缩的XML,很可能是.xlsx格式。 从以上两点来看,您当前的“寻找别人编写的现有解决方案”方法(*)可能需要改进。 获取适当的Excel库(例如PhpSpreadsheet ),阅读并理解其文档,以便能够将其用于您的特定需求。 最重要的是,尝试自己编写,不要复制从狂野的网络中不了解的粘贴代码。
(*)我在谈论这两个句子:
我到处找这个代码,但其中大部分都是专用的或只是有错误,没有工作。
到目前为止,我已经尝试了5种代码和插件(在github中),但是最后的代码效果最好,但是仍然无法正常工作。
最终,我找到了一个包含完整文档和说明的网站。 简而言之,解决方案是将excel(.xlsx)文件转换为XML(.xml)文件,然后使用简单的代码将其导入。 https://www.ibm.com/developerworks/library/os-phpexcel/index.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.