Excel 시트를 만들기 위해 PHPExcel을 사용하고 있지만 Ajax 문제가 있습니다. Ajax에서는 Ajax가 성공했을 때 시트를 생성 할 수 없다. 현재 코드에서 Ajax 삽입 시트가 생성되지 않고 매번 옵션 창으로 저장하라는 메시지가 표시됩니다.Ajax로 PHPExcel을 생성하지 않는 PHPExcel
코드 아약스없이 (작업) :
HTML :
<a href="javascript:void(0);" id="create">Create</a>
jQuery를 아약스 : 아약스 (작동하지 않음)와
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
/** Include PHPExcel */
require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Create a first sheet, representing sales data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Something');
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Name of Sheet 1');
// Create a new worksheet, after the default sheet
$objPHPExcel->createSheet();
// Add some data to the second sheet, resembling some different data types
$objPHPExcel->setActiveSheetIndex(1);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'More data');
// Rename 2nd sheet
$objPHPExcel->getActiveSheet()->setTitle('Second sheet');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="name_of_file_'.date('Y/m/d H:i:s').'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
코드
<script type="text/javascript">
$('#create').click(function() {
$.ajax({
type: "POST",
url: "http://localhost/testing/PHPExcel_1.8.0_doc/Examples/create.php",
data: "",
success: function (html) {
}
});
});
</script>
모든 아이디어 :
Create.php
<?php
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
/** Include PHPExcel */
require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Create a first sheet, representing sales data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Something');
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Name of Sheet 1');
// Create a new worksheet, after the default sheet
$objPHPExcel->createSheet();
// Add some data to the second sheet, resembling some different data types
$objPHPExcel->setActiveSheetIndex(1);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'More data');
// Rename 2nd sheet
$objPHPExcel->getActiveSheet()->setTitle('Second sheet');
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="name_of_file_'.date('Y/m/d H:i:s').'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
?>
이 응답을 얻기? 왜 시트가 생성되지 않고 왜 창으로 저장이 열리지 않는지.
감사합니다. 당신이 파일을 생성하는 아약스를 사용하는 경우
Ajax 호출을 사용하여 이와 같은 파일을 다운로드 할 수 없습니다. Google의 "ajax 다운로드 파일"을 사용하여 여러 가지 대체 솔루션을 볼 수 있습니다 (당연히 많은 사람들이 여기에 있습니다) –