Вопрос

Я экспортирую документ 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

Вы можете выполнить вышеизложенное, выполнив следующие действия:

  1. Откройте свой реестр (Пуск -> Выполнить -> regedit.exe)
  2. Перейдите к HKEY_CURRENT_USER\ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\MICROSOFT\OFFICE\12.0\EXCEL\БЕЗОПАСНОСТЬ
  3. Щелкните правой кнопкой мыши в правом окне и выберите Новое -> DWORD
  4. Тип “Расширение и упрочнение” как название (без кавычек)
  5. Убедитесь, что данные имеют нужное значение “0

Вам необходимо добавить приведенные ниже строки в свой файл свойств:

export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView

Но при этом выводится только текущая запись страницы, а не полный список.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top