Запись символов Юникода из Java с использованием Apache POI XSSF в файл Excel ".xlsx" - PullRequest
1 голос
/ 13 февраля 2012

Я работаю над проектом, который в настоящее время использует POI для записи в файл Excel с использованием рабочей книги XSSF.У меня проблема с записью Unicode символов в документ Excel и отображением их правильно.

Я использую Pattern и Matcher для поиска и замены других тегов в тексте соответствующими символами Unicode.

private static String replaceTags(String stringToChange, String replacementTag, String originalTag) {
    Pattern pattern = Pattern.compile(originalTag);
    Matcher matcher = pattern.matcher(stringToChange);
    return matcher.replaceAll(replacementTag);
}

Я вызываю эту функцию в своем коде, чтобы найти и заменить теги в моем тексте.Это работает для большинства моих заменяющих тегов, но не для таких вещей, как символ товарного знака и кавычка, потому что я не могу использовать для них фактический символ, я должен поставить для них Unicode.

if (replacementString.contains("%0022")) {
    replacementString = replaceTags(replacementString, "\\U005C", "%0022");
}
c.setCellValue(replacementString);

Теперь проблема, с которой я сталкиваюсь, заключается в том, что когда я записываю строку в файл Excel, Excel игнорирует обратную косую черту перед U005C и просто записывает код, как обычный текст.Есть ли способ заставить эти символы появляться из кода, который я пропускаю, или это вообще возможно сделать?

Обновление:

Я получил каждыйСимвол мне нужно для работы, кроме кавычки.При использовании \\\\U005c или \\\\U0022 электронная таблица Excel отображает \ U005c или \ U0022 вместо ".

...