Excel을 업로드하고 데이터를 읽은 다음 DB에 쓰면됩니다. 나는 2mb 엑셀 파일로부터 데이터를 얻을 필요가있다. 나는 데이터를 읽을 때까지 코딩을 끝냈다. 엑셀을 업로드하는Excel에서 DB로 크기를 변경하는 PHP로 데이터 업로드
ini_set('memory_limit', '-1');
도 어떻게 든
set_time_limit(0);
에 의해 관리도 실행 시간 문제를 사용하여 내가이 문제를 해결 한 몇 가지 문제
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20 bytes)
가 도시 동안 때 문제입니다 300kb 이상의 엑셀 크기를 업로드하려고하는데, 실행을 완료하는 데 너무 많은 시간이 걸립니다. 누구든지 Excel에서 데이터를 읽는 가장 좋은 방법을 제안 할 수 있습니까? DB에 삽입하기 전에 값을 배열에 저장하면 성능 문제가 있습니까? 여기
추가 내 코드
<?php
/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/');
/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';
include('../includes/class_read_xl.php');
$obj_read_xl=new class_read_xl();
if(isset($_POST["upload"])) {
move_uploaded_file($_FILES["ufile"]["tmp_name"], "../uploads/xlsheet/" . $_FILES["ufile"]["name"]);
$file = $_FILES['ufile']['name'];
$inputFileName = '../uploads/xlsheet/'.$file;
//$inputFileName = "test.xls";
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setReadDataOnly(false);
// Load $inputFileName to a PHPExcel Object
$objPHPExcel = $objReader->load($inputFileName);
$total_sheets=$objPHPExcel->getSheetCount(); // here 4
$allSheetName=$objPHPExcel->getSheetNames(); // array ([0]=>'student',[1]=>'teacher',[2]=>'school',[3]=>'college')
//print_r($allSheetName);
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0); // first sheet
$highestRow = $objWorksheet->getHighestRow(); // here 5
$highestColumn = $objWorksheet->getHighestColumn(); // here 'E'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // here 5
//exit();
$arr_data=array();
for ($row = 1; $row <= $highestRow; ++$row) {
for ($col = 0; $col <= $highestColumnIndex; ++$col) {
$value = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
if(is_array($arr_data)) {
$arr_data[$row-1][$col]=$value;
}
}
}
print_r($arr_data);
}
?>
'ini_set (' memory_limit ','-1 ');'정말 나쁜 생각입니다! –
코드를 게시하지 않으면 도움을 드릴 수 없습니다. –