Displaytag sta esportando CSV in un file .xls
-
23-09-2019 - |
Domanda
I esportare un documento Excel con DisplayTag. Si salva come file .xls al mio desktop. Quando ho aperto con Excel, questo display di errore:
"Il file che si sta tentando di aprire, 'filename.xls', è in un formato diverso da quello specificato dal l'estensione del file. Verificare che il file non sia danneggiato ed è da una fonte attendibile prima di aprire il file."
Se faccio clic su "Sì", viene visualizzato bene in Excel. Se apro questo con Textpad, vedo che si tratta di un file binario, ma sembra essere solo "" stringhe delimitate.
Tutte le idee che potrei avere torto fatto, o come vicino al debug di questo?
modifica: :
Se cambio l'estensione a .txt, non è un file binario; è semplicemente una lista di stringhe delimitate.
Soluzione 2
La classe di esportazione predefinita per Excel è stato impostato per la classe CSV, ma dandogli l'estensione .xls. Cambiare displaytag.properties è stata la chiave qui, qualcosa di simile:
export.types=csv excel xml rtf pdf
export.excel=true
export.xml=true
export.csv=true
export.rtf=false
export.pdf=false
export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView
export.rtf.class=org.displaytag.export.DefaultRtfExportView
export.excel.filename=data.xls
export.pdf.filename=data.pdf
export.xml.filename=data.xml
export.csv.filename=data.csv
export.rtf.filename=data.rtf
Altri suggerimenti
Sei in Excel 2007? Sembra essere un problema noto :
In alcuni casi, dopo l'aggiornamento a Excel 2007, è possibile ottenere il seguente errore: Il file che si sta tentando di aprire .xlsx è in un formato diverso rispetto specificato dall'estensione del file. Verificare il file non sia danneggiato e è da fonte attendibile prima dell'apertura il file. Vuoi aprire il file ora?
Questo errore si verifica quando in particolare si sta cercando di aprire un file XLS (Excel 2000-2003) con Excel 2007. Nella maggior parte dei casi, il problema può essere risolto attraverso la definizione di tipi MIME e associandoli con le estensioni.
...
Tuttavia, se non si vuole cercare una soluzione, ma vuole solo risolvere il problema, inserire la chiave nel Registro di sistema per eliminare la notifica:
[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 12.0 \ Excel \ Security] “ExtensionHardening” = dword: 00000000
Si può realizzare quanto sopra facendo il seguente:
- Aprire il Registro di sistema (Start -> Esegui -> regedit.exe)
- Spostarsi HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 12.0 \ EXCEL \ Sicurezza
- Fare clic destro nella finestra di destra e scegli Nuovo -> DWORD
- Digitare “ ExtensionHardening ”, come il Nome (senza le virgolette)
- Verifica che i dati ha il valore “ 0 "
È necessario aggiungere il seguito righe nel file proprietà:
export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView
Ma queste uscite il record pagina corrente e non la lista completa.