Displaytag экспортирует CSV в файл .xls - PullRequest
0 голосов
/ 02 марта 2010

Я экспортирую документ Excel с помощью DisplayTag. Он сохраняется как файл .xls на моем рабочем столе. Когда я открываю его в Excel, эта ошибка отображает:

"Файл, который вы пытаетесь открыть, 'filename.xls', имеет другой формат, чем тот, который указан расширением файла. Перед открытием файла убедитесь, что файл не поврежден и получен из надежного источника."

Если я нажму «Да», в Excel все будет хорошо. Если я открою это с помощью Textpad, я увижу, что это двоичный файл, но, похоже, это просто "." строки с разделителями.

Есть идеи, что я мог сделать неправильно или как отладить это?

редактирование: :

Если я изменю расширение на .txt, это не двоичный файл; это просто список строк с разделителями.

Ответы [ 3 ]

3 голосов
/ 02 марта 2010

Вы в Excel 2007? Кажется, известная проблема:

В некоторых случаях после обновления до Excel 2007, вы можете получить следующую ошибку: Файл, который вы пытаетесь открыть .xlsx в другом формате, чем определяется расширением файла. убедитесь, что файл не поврежден и из доверенного источника перед открытием файл. Хотите открыть файл сейчас?

Эта ошибка особенно возникает, когда вы пытаетесь открыть файл XLS (Excel 2000-2003) в Excel 2007. В большинстве случаев проблему можно решить, определив типы MIME и связав их с расширениями.

...

Однако, если вы не хотите искать решение, а просто хотите решить проблему, вставьте этот ключ в свой реестр, чтобы подавить уведомление:

[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 12.0 \ Excel \ Security] «ExtensionHardening» = dword: 00000000

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

  1. Откройте реестр (Пуск -> Выполнить -> regedit.exe)
  2. Перейдите к HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Office \ 12.0 \ EXCEL \ SECURITY
  3. Щелкните правой кнопкой мыши в правом окне и выберите Новый -> DWORD
  4. Введите « ExtensionHardening » в качестве имя (без кавычек)
  5. Убедитесь, что данные имеют значение « 0 "
1 голос
/ 08 марта 2010

Класс экспорта по умолчанию для 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
0 голосов
/ 28 сентября 2015

Вам необходимо добавить следующие строки в свой файл свойств:

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

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

...