Проблема данных в Excel UTF-8 - PullRequest
       11

Проблема данных в Excel UTF-8

0 голосов
/ 09 августа 2011

Ситуация: у меня есть таблица данных, которая показана на странице jsp с utf-8.С этим проблем нет.Когда я экспортирую его в Excel, неанглийские значения выглядят странно. Код экспорта:

public class DisplayExcelView extends ExcelView {
public String getMimeType() {   

    return "application/vnd.ms-excel; charset=utf-8"; //uses the Win-cp1256
}

}

Сохраняет файл xls.Когда я открываю его с помощью двойного клика

Файл, который вы пытаетесь открыть, blabla.xls имеет другой формат с расширением файла .blabla Хотите открыть файл?

Если я нажму да;Неанглийские значения выглядят странно.

Но если я сначала открою Excel 2007 и загрузлю текст DATA / From (путем импорта файла .xls), Excel покажет окно, в котором есть выбранная кодировка UTF-8.После выбора этого варианта неанглийские символы выглядят идеально.

Нет ли способа открыть окно, дважды щелкнув файл .xls и получить правильные неанглийские символы?

Ответы [ 2 ]

0 голосов
/ 16 августа 2015

Насколько я понимаю, на форумах технической поддержки Microsoft, где я задавал вопрос, EXCEL не поддерживает кодировку UTF-8. Не уверен почему. Это актуально на сегодня, 16 августа 2105 года, и включает недавно выпущенные выпуски Excel 2016 для платформ Mac и Windows.

0 голосов
/ 10 августа 2011

Вы можете вывести в текстовый файл, используя любую кодировку, которую вы хотите использовать:

BufferedWriter out = 
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"iso-8859-1"));

Я выбрал iso-8859-1, но это может не быть кодировкой Excel по умолчанию.Это единственная кодировка по умолчанию в Java, которая не относится к типу UTF.

Если вам нужна какая-то другая кодировка для Windows (не iso-8859-1 или какая-либо из utf), вам придется посмотреть, какимпортировать эти наборы символов с помощью java.nio.charset.spi.CharsetProvider (вам может быть лучше использовать Google, поскольку документация не очень полезна).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...