phpExcel saves the read cell information in memory, we can pass
Copy code The code is as follows:
PHPExcel_Settings::setCacheStorageMethod()
To set different caching methods, the purpose of reducing memory consumption has been achieved!
1. Serialize the cell data and save it in memory
Copy code The code is as follows:
PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized;
2. Serialize the cells and then Gzip compress them, then save them in memory
Copy code The code is as follows:
PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
3. Caching in temporary disk files may be slower
Copy code The code is as follows:
PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
4. Save in php://temp
Copy code The code is as follows:
PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
5. Save in memcache
Copy code The code is as follows:
PHPExcel_CachedObjectStorageFactory::cache_to_memcache
Example:
Medium 4:
Copy code The code is as follows:
$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
$cacheSettings = array( ' memoryCacheSize ' => '8MB'
);
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
Type 5:
Copy code The code is as follows:
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache;
$cacheSettings = array( 'memcacheServer ' => 'localhost',
'memcachePort' => 11211,
'cacheTime' => 600 );
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
Other methods
The first method, you can consider generating multiple sheets. You don’t need to generate multiple excel files. Calculate how many rows each sheet exports based on the total amount of your data. The following is how PHPExcel generates multiple sheets:
The following is how PHPExcel generates multiple sheets:
Copy code The code is as follows:
$sheet = $objPHPExcel->getActiveSheet();
$sheet- >setCellValue('A1',$x);
$sheet->setCellValue('B1',$y);
For the second method, you can consider ajax to export in batches without refreshing the page every time.
Copy code The code is as follows: export to Excel $('#export').click(function() {
$. ajax({
url: "export.php",
data: getData(), //You can also get this in php, usually read the database
success: function(response){
window.location.href = response.url;
Copy code
The code is as follows:
//export.php $data = $_POST['data'];
$xls = new PHPExcel();
$xls->loadData($formattedData);
$xls->exportToFile('excel.xls');
$response = array(
'success' => true,
'url' => $url
);
header('Content-type: application/json') ;
echo json_encode($response);
?>
If the amount of data is large, it is recommended to use the second method, ajax, to export the data. The above method simply gives a process, you can add the details yourself!
http://www.bkjia.com/PHPjc/326554.html
www.bkjia.com
truehttp: //www.bkjia.com/PHPjc/326554.htmlTechArticlephpExcel saves the read cell information in memory. We can copy the code as follows: PHPExcel_Settings:: setCacheStorageMethod() to set different caching methods, has reached...