php 上传文件 excel,如何使用PHPExcel库上载大型Excel文件?

当我在数据库(phpMySql)中使用php上传excel文件时,会出现如下错误

Excel中有超过40000行。

如果我上传的excel文件有400-1000行,那么它就可以工作了。

我在用PHPExcel库。

这是我的代码:

Import Excel

table {

border-collapse: collapse;

width: 100%;

}

th, td {

text-align: left;

padding: 8px;

}

tr:nth-child(even) {background-color: #f2f2f2;}

require 'Classes/PHPExcel/IOFactory.php';

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "office";

if(isset($_POST['upload'])){

$inputfilename = $_FILES['file']['tmp_name'];

$exceldata = array();

$conn = mysqli_connect($servername, $username, $password, $dbname);

if(!$conn){

die("Connection Failed: " . mysqli_connect_error());

}

try {

$inputfiletype = PHPExcel_IOFactory::identify($inputfilename);

$objReader = PHPExcel_IOFactory::createReader($inputfiletype);

$objPHPExcel = $objReader->load($inputfilename);

} catch(Exception $e){

die('Error loading file "'.pathinfo($inputfilename,PATHINFO_BASENAME).'": '.$e->getMessage());

}

$sheet = $objPHPExcel->getSheet(0);

$highestRow = $sheet->getHighestRow();

$highestColumn = $sheet->getHighestColumn();

for($row = 2; $row <= $highestRow; $row++) {

$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);

$sql = "INSERT INTO allsec (emp_code, emp_full_name, request_type, leave_status, leave_from, leave_to, days, year, month, pl, pm, lpm, status, emp_name, wg, leave_type)

VALUES ('".$rowData[0][0]."', '".$rowData[0][1]."', '".$rowData[0][2]."', '".$rowData[0][3]."', '".$rowData[0][4]."', '".$rowData[0][5]."', '".$rowData[0][6]."', '".$rowData[0][7]."', '".$rowData[0][8]."', '".$rowData[0][9]."', '".$rowData[0][10]."', '".$rowData[0][11]."', '".$rowData[0][12]."', '".$rowData[0][13]."', '".$rowData[0][14]."', '".$rowData[0][15]."')";

if(mysqli_query($conn, $sql)){

$exceldata[] = $rowData[0];

} else{

echo "Error: " .$sql . "
" . mysqli_error($conn);

}

}

echo "

foreach($exceldata as $index => $excelraw){

echo "

";

foreach($excelraw as $excelcolumn){

echo "

".$excelcolumn."";

}

echo "

";

}

echo "

";

mysqli_close($conn);

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值