Heim  >  Artikel  >  Backend-Entwicklung  >  用phpExcelReader不能导入大量数据

用phpExcelReader不能导入大量数据

WBOY
WBOYOriginal
2016-06-23 13:47:43853Durchsuche

我在网上找了个例子,可以通过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之后就不能导入了。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn