Home > Article > Backend Development > 用phpExcelReader不能导入大量数据
我在网上找了个例子,可以通过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……
怪了,用这个导入122条可以,123条也不行。 你下载我的excel试试
引用楼主 的回复:
我在网上找了个例子,可以通过phpexcel将excel文件导入到数据库中,但是数据一旦超过122条,例如一个excel文件中有123条数据就无法导入。我讲代码贴出来,大家看看:
require_once '../phpExcelReader/Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$da……
我的是281.。。281之后就不能导入了。