PHPexcel导入数据求教,10列数据以上无数据输出是为什么
$objReader=PHPExcel_IOFactory::createReader('Excel5');//useexcel2007for2007format$fil...
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$filename="1.xls";//指定excel文件从上传中取出
// $filename = $_FILES['myfile']['tmp_name'];
$objPHPExcel = $objReader->load($filename); //$filename可以是上传的文件,或者是指定的文件
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
++$highestColumn;
$k = 0;
//循环读取excel文件,读取一条,插入一条
//j表示从哪一行开始读取
//$a表示列号
for($j=2;$j<=$highestRow;$j++) {//j=2是因为第一行表为提示,从第二行开始取 {
$a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();
$b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();
$c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();
$d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();
$e = $objPHPExcel->getActiveSheet()->getCell("E".$j)->getValue();
$f = $objPHPExcel->getActiveSheet()->getCell("F".$j)->getValue();
$g = $objPHPExcel->getActiveSheet()->getCell("G".$j)->getValue();
$h = $objPHPExcel->getActiveSheet()->getCell("H".$j)->getValue();
$i = $objPHPExcel->getActiveSheet()->getCell("I".$j)->getValue();
$j = $objPHPExcel->getActiveSheet()->getCell("J".$j)->getValue();
只写以上部分可以echo $sql正确代码,增加以下部分之后输出结果空白.
$k = $objPHPExcel->getActiveSheet()->getCell("K".$j)->getValue();
……………………
$ai = $objPHPExcel->getActiveSheet()->getCell("AI".$j)->getValue();
$sql = "INSERT INTO `feng_match2` (`id`, `uid`, `order8`, `company`, `teamname`, `contacts`, `phone`, `class1`, `class2`, `class3`, `class4`, `class5`, `ab`, `name1`, `a1`, `a2`, `a3`, `a4`, `a5`, `a6`, `a7`, `a8`, `na`, `boss`, `score`, `rank`, `prize`, `start`, `display`, `rule`, `ch1`, `ch2`, `ch3`, `waiver`, `uptime`) VALUES('$a','$b','$c','$d','$e','$f','$g','$h','$i','$j','$k','$l','$m','$n','$o','$p','$q','$r','$s','$t','$u','$v','$w','$x','$y','$z','$aa','$ab','$ac','$ad','$ae','$af','$ag','$ah','$ai')";
echo "$sql";
exit();
如果数据到$j = $objPHPExcel->getActiveSheet()->getCell("J".$j)->getValue();
是可以输出$sql到值,
增加一个$k = $objPHPExcel->getActiveSheet()->getCell("K".$j)->getValue();
输出空白了,是什么原因呢 展开
$filename="1.xls";//指定excel文件从上传中取出
// $filename = $_FILES['myfile']['tmp_name'];
$objPHPExcel = $objReader->load($filename); //$filename可以是上传的文件,或者是指定的文件
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
++$highestColumn;
$k = 0;
//循环读取excel文件,读取一条,插入一条
//j表示从哪一行开始读取
//$a表示列号
for($j=2;$j<=$highestRow;$j++) {//j=2是因为第一行表为提示,从第二行开始取 {
$a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();
$b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();
$c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();
$d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();
$e = $objPHPExcel->getActiveSheet()->getCell("E".$j)->getValue();
$f = $objPHPExcel->getActiveSheet()->getCell("F".$j)->getValue();
$g = $objPHPExcel->getActiveSheet()->getCell("G".$j)->getValue();
$h = $objPHPExcel->getActiveSheet()->getCell("H".$j)->getValue();
$i = $objPHPExcel->getActiveSheet()->getCell("I".$j)->getValue();
$j = $objPHPExcel->getActiveSheet()->getCell("J".$j)->getValue();
只写以上部分可以echo $sql正确代码,增加以下部分之后输出结果空白.
$k = $objPHPExcel->getActiveSheet()->getCell("K".$j)->getValue();
……………………
$ai = $objPHPExcel->getActiveSheet()->getCell("AI".$j)->getValue();
$sql = "INSERT INTO `feng_match2` (`id`, `uid`, `order8`, `company`, `teamname`, `contacts`, `phone`, `class1`, `class2`, `class3`, `class4`, `class5`, `ab`, `name1`, `a1`, `a2`, `a3`, `a4`, `a5`, `a6`, `a7`, `a8`, `na`, `boss`, `score`, `rank`, `prize`, `start`, `display`, `rule`, `ch1`, `ch2`, `ch3`, `waiver`, `uptime`) VALUES('$a','$b','$c','$d','$e','$f','$g','$h','$i','$j','$k','$l','$m','$n','$o','$p','$q','$r','$s','$t','$u','$v','$w','$x','$y','$z','$aa','$ab','$ac','$ad','$ae','$af','$ag','$ah','$ai')";
echo "$sql";
exit();
如果数据到$j = $objPHPExcel->getActiveSheet()->getCell("J".$j)->getValue();
是可以输出$sql到值,
增加一个$k = $objPHPExcel->getActiveSheet()->getCell("K".$j)->getValue();
输出空白了,是什么原因呢 展开
1个回答
展开全部
php导出大量数据的Excel:
PHP从数据库分多次读取100万行记录,和分多次将100万行写入文本文件都没问题
Excel可以支持100万行记录,Excel 2003最大支持65536行,从2007版开始支持104万行了,目前2007的盗版应该比较普及了-_-! 问清楚客户是什么版本。
要导出excel的理由是非常充分和正确的,应该继续坚持。业务人员最熟悉的就是Excel,实在不熟悉现学现用也比别的快。只是要注意,当数据量达到10万行这个级别时,Excel的公式填充将会非常非常慢,如果再有LOOKUP()公式,基本上十分钟内处理CPU满载进程管理器杀不掉的状态,这时候其实xampp + phpmyadmin是一个易用性和性能都最平衡的选择
PHPExcel输出的是Excel XML格式,有个XML头和尾,中间是数据Body,需要将100万行都赋值给一个数组才可以调用PHPExcel->write(),这容易导致PHP执行超时或者内存超限,不妨调整一下php.ini配置,把超时时间和内存限制都改到很大
如果是输出csv格式,那就太简单了,你的问题可能是没给字段内容加引号,加上引号再调用fputcsv试试?其实fputcsv做的事情特别简单,你甚至可以不管它,自己把CSV文件的每一行拼接好了之后用file_put_contents写入
PHP从数据库分多次读取100万行记录,和分多次将100万行写入文本文件都没问题
Excel可以支持100万行记录,Excel 2003最大支持65536行,从2007版开始支持104万行了,目前2007的盗版应该比较普及了-_-! 问清楚客户是什么版本。
要导出excel的理由是非常充分和正确的,应该继续坚持。业务人员最熟悉的就是Excel,实在不熟悉现学现用也比别的快。只是要注意,当数据量达到10万行这个级别时,Excel的公式填充将会非常非常慢,如果再有LOOKUP()公式,基本上十分钟内处理CPU满载进程管理器杀不掉的状态,这时候其实xampp + phpmyadmin是一个易用性和性能都最平衡的选择
PHPExcel输出的是Excel XML格式,有个XML头和尾,中间是数据Body,需要将100万行都赋值给一个数组才可以调用PHPExcel->write(),这容易导致PHP执行超时或者内存超限,不妨调整一下php.ini配置,把超时时间和内存限制都改到很大
如果是输出csv格式,那就太简单了,你的问题可能是没给字段内容加引号,加上引号再调用fputcsv试试?其实fputcsv做的事情特别简单,你甚至可以不管它,自己把CSV文件的每一行拼接好了之后用file_put_contents写入
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询