PHP Microsoft Excel dosya oluşturma / ihracat sınıf

5 Cevap php

Ben iyi bir Excel dosyası nesil sınıf arıyoruz ve bulmak için henüz var oldum - benim bir numaralı sorunu ben Excel (2007 çalıştıran) açmak için aktarılan dosyayı alabilirsiniz, ancak ben, ben hep "diyerek bir uyarı almak olduğunu dosya "dosya uzantısı için farklı bir formatta olduğunu.

Ben phpMyAdmin Excel ihracat bile anılan uyarı iletisi oluşturur fark ettim.

Diğer kullanıcılar bu ortak gereksinimi için ne kodu kullanıyorsunuz?

Quick update Ben xml olarak benim oluşturulan Excel dosyası (ben doğru başlıkları yolluyorum bile) tarayıcıda açılır, ancak dosya uzantısını ayarlarsanız ben xml dosyayı kaydetmek için seçin ve sonra açarsanız Excel, herhangi bir uyarı olmadan çalışıyor! Ne yazık ki, sadece ben alıyorum uyarı ile 'Devam edilsin' tıklayarak daha kullanıcılar için daha fazla güçlük var. Herhangi fazla fikir?

5 Cevap

Benim oluşturulan Excel dosyası xml bildiriminde altında, aşağıdakileri ekleyerek, Excel (yerine web tarayıcısı daha) bir xml dosya uzantısı ile dosya açılır sağlar keşfetti ettik:

 <?mso-application progid=\"Excel.Sheet\"?>

Ben de php şu başlıkları koyuyorum:

// deliver header (as recommended in php manual)
header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
header('Content-Disposition: attachment; filename="' . $filename . '.xml"');

Spreadsheet_Excel_Writer PEAR kullanmak

veya

Write the file to CSV format.
But use Microsoft Excels understanding of csv: A semicolon(;) as seperator

Ayrıca regedit kullanarak, DialogBox devre dışı

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security]
“ExtensionHardening”=dword:00000000
  • Başlat -> Çalıştır -> regedit
  • "12.0 \ Excel \ Security \ Microsoft \ Office \ HKEY_CURRENT_USER \ SOFTWARE" git
  • Yeni DWORD
  • Değer olarak isim ve 0 olarak "ExtensionHardening" yazın

the file is in a different format that the file extension

Eğer başka bir dosya uzantısına sahip dosyayı kaydetmeden denediniz mi? Yerine "foo.xls" nin "foo.xlsx" gibi.