2015-09-17 4 views
1

Я использую phpexcel для экспорта моего запроса в файл excel; однако после того, как я создал файл (который является xslx-форматом), я не могу открыть свой файл в excel. Это дает «формат файла или расширение не является действительным. Если я пытаюсь открыть с OpenOffice Calc это правильно открывается. Но excelviewer не открывается.PHPExcel Формат или расширение файла недействительно 2

<?php 
require 'Classes/PHPExcel.php'; 
require 'Classes/PHPExcel/Writer/Excel2007.php'; 
require "database.php"; 
require "C_TahsilatGetir.php"; 

$obj = new TahsilatGetir; 
$bitis = $obj->getExcelLastDate(); 
$baslangic = date("d/m/Y"); 
$tahsilatlar = $obj->tahsilatGetirTarih($bitis["son_tarihi"], $baslangic); 

// Create new PHPExcel object 
echo date('H:i:s') . " Create new PHPExcel object\n"; 
$objPHPExcel = new PHPExcel(); 

// Set properties 
echo date('H:i:s') . " Set properties\n"; 
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw"); 
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw"); 
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document"); 
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document"); 
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes."); 

// Add some data 
echo date('H:i:s') . " Add some data\n"; 
$objPHPExcel->setActiveSheetIndex(0); 
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'SIRA'); 
$objPHPExcel->getActiveSheet()->SetCellValue('B1', 'MÜŞTERİ NO'); 
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'ÜNVAN'); 
$objPHPExcel->getActiveSheet()->SetCellValue('D1', 'BÖLGE'); 
$objPHPExcel->getActiveSheet()->SetCellValue('E1', 'GELEN TUTAR'); 
$objPHPExcel->getActiveSheet()->SetCellValue('F1', 'TARİH'); 
$objPHPExcel->getActiveSheet()->SetCellValue('G1', 'AÇIKLAMA'); 
$k = 2; 
for ($i = 0; $i < count($tahsilatlar); $i++) { 
    if ($tahsilatlar[$i]["tahsilat_turu"] == "Kredi Kartı") { 
     $cell1 = "A".$k; 
     $cell2 = "B".$k; 
     $cell3 = "C".$k; 
     $cell4 = "D".$k; 
     $cell5 = "E".$k; 
     $cell6 = "F".$k; 
     $cell7 = "G".$k; 
     $sira = $k - 1; 
     $objPHPExcel->getActiveSheet()->SetCellValue($cell1, $sira); 
     $objPHPExcel->getActiveSheet()->SetCellValue($cell2, $tahsilatlar[$i]["musteri_no"]); 
     $objPHPExcel->getActiveSheet()->SetCellValue($cell3, $tahsilatlar[$i]["musteri_unvani"]); 
     $objPHPExcel->getActiveSheet()->SetCellValue($cell4, $tahsilatlar[$i]["bolge"]); 
     $objPHPExcel->getActiveSheet()->SetCellValue($cell5, $tahsilatlar[$i]["tutar"]); 
     $objPHPExcel->getActiveSheet()->SetCellValue($cell6, $tahsilatlar[$i]["tahsilat_tarihi"]); 
     $objPHPExcel->getActiveSheet()->SetCellValue($cell7, $tahsilatlar[$i]["banka"]); 
     $k++; 
    } 
} 

// Rename sheet 
echo date('H:i:s') . " Rename sheet\n"; 
$objPHPExcel->getActiveSheet()->setTitle('Simple'); 


// Save Excel 2007 file 
echo date('H:i:s') . " Write to Excel2007 format\n"; 
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment;filename="KREDIKARTI.xlsx"'); 
$objWriter->save('php://output'); 

// Echo done 
echo date('H:i:s') . " Done writing file.\r\n"; 
?> 
+0

Возможно ли вы используете версию Excel до 2007? Cus что-то до этого только поддерживает xls ... Мое предположение было бы в том, что это проблема с вашим Excel, а не с файлом. –

+0

Для Excel95 + был доступен пакет, который позволял ему читать файлы xlsx, хотя с ограничениями Excel95 на размер –

+0

в чем разница между xls и xlsx? – Dauezevy

ответ

3

Всегда убедитесь, что PHPExcel сохранить поток является только выхода генерируется при отправке вывода непосредственно в браузер (php://output). Это означает, что любое эхо или печать заявление, как

echo date('H:i:s') . " Create new PHPExcel object\n"; 

или

echo date('H:i:s') . " Done writing file.\r\n"; 

не должен быть использован в сценарии

+0

Я полностью пропустил это –

+0

отлично, спасибо – Dauezevy

Смежные вопросы