Я создаю отчет Excel, используя PHPExcel и Codeigniter3. Поскольку это старый проект, мне пришлось исправлять ошибки. Сейчас я застрял на части экспорта Excel.
Человек, создавший этот проект, сделал запрос, чтобы взять значение таблицы и передать его контроллеру:
function submitExcel() {
const table = document.getElementById('takenTable');
const rows = [...table.rows];
const dataPush = rows.map((row) => {
return [...row.cells].map((cell) => cell.textContent);
});
console.log('Data to be sent:', dataPush);
$.ajax({
type: 'POST',
url: '',
data: JSON.stringify(dataPush),
contentType: 'application/json',
success: function(response) {
console.log('Excel export successful:', response);
alert('Excel file generated successfully!');
},
error: function(xhr, status, error) {
console.error('Error exporting Excel:', error);
alert('An error occurred while generating the Excel file. Please try again later.');
}
});
}
document.getElementById("genereteExcel").addEventListener("click", submitExcel);
Это контроллер, созданный для экспорта. Библиотека доступна:
public function exportExcelTakenReport()
{
try{
$this->load->library('Excel');
$data = json_decode(file_get_contents('php://input'), true);
if(empty($data)){
throw new Exception('Data is empty');
}
error_log('Received data: ' . print_r($data, true));
// Create a new PHPExcel object
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
// Set the header row
$headerRow = 1;
foreach ($data[0] as $index => $header) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($index, $headerRow, $header);
}
// Set the data rows
$dataRow = 2;
foreach ($data as $row) {
foreach ($row as $index => $cell) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($index, $dataRow, $cell);
}
$dataRow++;
}
// Set header for the download file
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Taken_Report_' . date('YmdHis') . '.xlsx"');
header('Cache-Control: max-age=0');
// Write the file to PHP output
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}
catch(Exception $err){
error_log('Error exporting Excel: ' . $e->getMessage());
return $this->response->JSON(['error' => 'Failed to generate Excel file. Please contact support.']);
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -exporting
Почему экспорт в Excel не экспортируется? ⇐ Php
Кемеровские программисты php общаются здесь
1733967751
Anonymous
Я создаю отчет Excel, используя PHPExcel и Codeigniter3. Поскольку это старый проект, мне пришлось исправлять ошибки. Сейчас я застрял на части экспорта Excel.
Человек, создавший этот проект, сделал запрос, чтобы взять значение таблицы и передать его контроллеру:
function submitExcel() {
const table = document.getElementById('takenTable');
const rows = [...table.rows];
const dataPush = rows.map((row) => {
return [...row.cells].map((cell) => cell.textContent);
});
console.log('Data to be sent:', dataPush);
$.ajax({
type: 'POST',
url: '',
data: JSON.stringify(dataPush),
contentType: 'application/json',
success: function(response) {
console.log('Excel export successful:', response);
alert('Excel file generated successfully!');
},
error: function(xhr, status, error) {
console.error('Error exporting Excel:', error);
alert('An error occurred while generating the Excel file. Please try again later.');
}
});
}
document.getElementById("genereteExcel").addEventListener("click", submitExcel);
Это контроллер, созданный для экспорта. Библиотека доступна:
public function exportExcelTakenReport()
{
try{
$this->load->library('Excel');
$data = json_decode(file_get_contents('php://input'), true);
if(empty($data)){
throw new Exception('Data is empty');
}
error_log('Received data: ' . print_r($data, true));
// Create a new PHPExcel object
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
// Set the header row
$headerRow = 1;
foreach ($data[0] as $index => $header) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($index, $headerRow, $header);
}
// Set the data rows
$dataRow = 2;
foreach ($data as $row) {
foreach ($row as $index => $cell) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($index, $dataRow, $cell);
}
$dataRow++;
}
// Set header for the download file
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Taken_Report_' . date('YmdHis') . '.xlsx"');
header('Cache-Control: max-age=0');
// Write the file to PHP output
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}
catch(Exception $err){
error_log('Error exporting Excel: ' . $e->getMessage());
return $this->response->JSON(['error' => 'Failed to generate Excel file. Please contact support.']);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79273617/why-does-the-excel-export-is-not-exporting[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия