Displaytag экспортирует CSV-файл в файл .xls
-
23-09-2019 - |
Вопрос
Я экспортирую документ Excel с помощью DisplayTag.Он сохраняется в виде xls-файла на моем рабочем столе.Когда я открываю его с помощью Excel, отображается эта ошибка:
"Файл, который вы пытаетесь открыть, "filename.xls", имеет формат, отличный от указанного в расширении файла.Прежде чем открывать файл, убедитесь, что он не поврежден и получен из надежного источника ".
Если я нажму "Да", он просто отлично отобразится в Excel.Если я открою это с помощью Textpad, я увижу, что это двоичный файл, но, похоже, это просто строки с разделителями ".".
Есть какие-нибудь идеи, что я, возможно, сделал не так, или как дальше это отлаживать?
Редактировать::
Если я изменю расширение на .txt, это не будет двоичный файл;это просто список строк с разделителями.
Решение 2
Класс экспорта по умолчанию для Excel был установлен в класс CSV, но с расширением .xls.Ключевым моментом здесь было изменение displaytag.properties, что-то вроде:
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
Другие советы
Используете ли вы Excel 2007?Кажется, это известный проблема:
В некоторых случаях после обновления до Excel 2007, вы можете получить следующую ошибку:Файл, который вы пытаетесь открыть .xlsx имеет формат, отличный от указанного в расширении файла.убедитесь, что файл не поврежден и получен из надежного источника, прежде чем открывать файл.Вы хотите открыть файл сейчас?
Эта ошибка, в частности, возникает при попытке открыть файл XLS (Excel 2000-2003) с помощью Excel 2007.В большинстве случаев проблему можно решить, определив типы MIME и связав их с расширениями.
...
Однако, если вы не хотите искать решение, а просто хотите решить проблему, вставьте этот раздел в свой реестр, чтобы отключить уведомление:
[HKEY_CURRENT_USER\Программное обеспечение\Microsoft\Office\12.0\Excel\Безопасность] “ExtensionHardening”=dword:00000000
Вы можете выполнить вышеизложенное, выполнив следующие действия:
- Откройте свой реестр (Пуск -> Выполнить -> regedit.exe)
- Перейдите к HKEY_CURRENT_USER\ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\MICROSOFT\OFFICE\12.0\EXCEL\БЕЗОПАСНОСТЬ
- Щелкните правой кнопкой мыши в правом окне и выберите Новое -> DWORD
- Тип “Расширение и упрочнение” как название (без кавычек)
- Убедитесь, что данные имеют нужное значение “0″
Вам необходимо добавить приведенные ниже строки в свой файл свойств:
export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView
Но при этом выводится только текущая запись страницы, а не полный список.