Maison  >  Article  >  développement back-end  >  用phpExcelReader不能导入大量数据

用phpExcelReader不能导入大量数据

WBOY
WBOYoriginal
2016-06-23 13:47:43853parcourir

我在网上找了个例子,可以通过phpexcel将excel文件导入到数据库中,但是数据一旦超过122条,例如一个excel文件中有123条数据就无法导入。我讲代码贴出来,大家看看:
require_once '../phpExcelReader/Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('GB2312');
$data->read('../lfx.xls');
}

for ($i = 1; $i sheets[0]['numRows']; $i++) 
  {

for ($j = 1; $j sheets[0]['numCols']; $j++) 
{

echo $data->sheets[0]['cells'][$i][$j];
}
}

以上代码在excel文件小于123条时就可以打印出所有记录在网页上,但是大于等于123条时就是空白,而我需要导入一个5000条以上的数据,苦恼中。


附上phpExcelReader以及我的excel
感谢各位了!


回复讨论(解决方案)

那你分批导入试试。一次100条或者122条。

额,主要是无法确定每次导入的数据有多少条,有可能下次只导入10条,有可能导入8000条,所以不知道怎么做哦

那你分批导入试试。一次100条或者122条。

导入的数据有中文吗?要是有的话,估计就不太处理了,一直没把含有中文字符的鼓捣好,我原来上传过一个excel的东西,我现在用它,一次1万条数据 是没有问题的,只不过速度慢点

就是有中文哦,你的还在么,可不可以发我看下呀,嘿嘿!

导入的数据有中文吗?要是有的话,估计就不太处理了,一直没把含有中文字符的鼓捣好,我原来上传过一个excel的东西,我现在用它,一次1万条数据 是没有问题的,只不过速度慢点

你使用了session,超最大值了。

这样呢?:

# 读取并显示 CSV 文件的整个内容<?php$row = 1;$handle = fopen("test.csv","r");while ($data = fgetcsv($handle, 1000, ",")) {    $num = count($data);    echo "<p> $num fields in line $row: <br>\n";    $row++;    for ($c=0; $c < $num; $c++) {        echo $data[$c] . "<br>\n";    }}fclose($handle);?>  

没有使用吧,哪里可以看出使用了session呢?

你使用了session,超最大值了。

可是要导入的是excel文件呀,后缀名是xls的

这样呢?:
PHP code

# 读取并显示 CSV 文件的整个内容

$row = 1;
$handle = fopen("test.csv","r");
while ($data = fgetcsv($handle, 1000, ",")) {
    $num = count($data);
    echo "

 $num fields in line $row: ……

/* * PHPExcel.V1.7.6版本 [读取示例] */include 'PHPExcel/IOFactory.php';$filename = "d:/test.xls";$readType = PHPExcel_IOFactory::identify($filename);  //在不知道文档类型的情况下获取$excelReader = PHPExcel_IOFactory::createReader($readType);$PHPExcelObj = $excelReader->load($filename);$currentSheet = $PHPExcelObj->getSheet(0);            //选取第一张表单(Sheet1)为当前操作的表单$excelRows = $currentSheet->getHighestRow();          //获取最大行$excelColumn = $currentSheet->getHighestColumn();     //获取最大列foreach(range(1,$excelRows) as $row){    $line = '<p>';    foreach(range('A',$excelColumn) as $column){        $line .= $currentSheet->getCell($column.$row)->getValue().",";    }    $line .= '</p>';    echo $line;}


参考该贴:
http://topic.csdn.net/u/20120517/11/746a745b-27dd-4f54-9882-80d3bf68fb15.html

我去这个帖子最后给出的网站下载了最新的phExcelReader2.21,还是无法打印出122条以上的内容,121条以内的都可以打印出来。

参考该贴:
http://topic.csdn.net/u/20120517/11/746a745b-27dd-4f54-9882-80d3bf68fb15.html

导入消息队列, 线下入库吧.

似乎有点高级,有没有例子呀?

导入消息队列, 线下入库吧.

似乎有点高级,有没有例子呀?
引用 13 楼  的回复:

导入消息队列, 线下入库吧.



这是回复给你另一个帖子的,不是这个问题。

网上参考别人的案例。从基础开始。

前段时间我使用了这个类,导入2000行的excel文件就失败,不过500行的excel是没问题的。

那是怎么回事呢,你有解决吗?

前段时间我使用了这个类,导入2000行的excel文件就失败,不过500行的excel是没问题的。

我在网上找了个例子,可以通过phpexcel将excel文件导入到数据库中,但是数据一旦超过122条,例如一个excel文件中有123条数据就无法导入。我讲代码贴出来,大家看看:
require_once '../phpExcelReader/Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutput……



用这个吧:http://www.phpclasses.org/package/6235-PHP-Parse-and-access-binary-Excel-files-in-pure-PHP.html

用过后觉得很不错,支持中文,支持xlsx格式,可以遍历解析所有的表、列、行、以及单元格。之前也是用的phpExcelReader,发现问题比较多,于是找到这个。

怪了,用这个导入122条可以,123条也不行。 你下载我的excel试试

引用楼主  的回复:
我在网上找了个例子,可以通过phpexcel将excel文件导入到数据库中,但是数据一旦超过122条,例如一个excel文件中有123条数据就无法导入。我讲代码贴出来,大家看看:
require_once '../phpExcelReader/Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$da……

我的是281.。。281之后就不能导入了。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn