значение даты преобразуется из дд-мм-гггг в дд/мм/гггг при преобразовании excel в html с использованием aspose.cells для java

У меня есть ячейка в excel, отформатированная как дата со значением «31-03-2017», но когда я экспортирую excel в html, она преобразуется в «31/03/2017».

«03-31-2017» снова ячейка с форматированием даты, но появляется, как и ожидалось, если мне нужно предположить, похоже, что есть проблема с форматом дд-мм-гггг.

Я использую библиотеку aspose-cells-8.7.0.

Любая помощь высоко ценится.

Фрагмент кода

Workbook workbook = new Workbook(new FileInputStream(new File("filePath")));
workbook.calculateFormula();
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions();
htmlSaveOptions.setPresentationPreference(true);
htmlSaveOptions.setParseHtmlTagInCell(false);
htmlSaveOptions.setExportHiddenWorksheet(false);
workbook.save("outputPath", htmlSaveOptions);

введите здесь описание изображения


person kalyan    schedule 16.11.2017    source источник


Ответы (1)


Такая проблема возникает из-за настроек языка и региона вашего компьютера, то есть ОС (операционной системы). Пожалуйста, посмотрите на следующий снимок экрана. Вы можете изменить свой регион и страну, а также форматы чисел и дат из таких интерфейсов.

введите здесь описание изображения

Теперь всякий раз, когда вы меняете свой регион или язык, ваши даты будут выглядеть по-другому, потому что ваши даты имеют встроенные форматы, а не настраиваемые форматы.

Чтобы проверить это, измените регион и откройте файл Excel в Microsoft Excel, и вы увидите, что ваши даты теперь выглядят по-другому.

Это означает, что вы должны загрузить свою книгу с правильными настройками региона и языка. Вот пример кода для справки. Пожалуйста, прочитайте его комментарии.

Ява

//Please load your workbook with correct Language and Region - Country Code
LoadOptions loadOptions = new LoadOptions();
loadOptions.setLanguageCode(CountryCode.USA);
loadOptions.setRegion(CountryCode.USA);

//Pass the load options while loading workbook
Workbook workbook = new Workbook(new FileInputStream(new File("filePath")), loadOptions);

Примечание. Я работаю разработчиком-евангелистом в Aspose

person shakeel    schedule 16.11.2017
comment
Я понимаю, что Locale играет роль, особенно для встроенных функций даты, если это так, я ожидаю, что он изменится с dd-MM-yyyy (индийский) на MM-dd-yyyy (американский). Проблема здесь в том, что он меняет разделители, как я сказал (- на /). Однако я проверю то, что вы предложили, и обновлю здесь, а если вы найдете что-то более любезное, обновите, спасибо. - person kalyan; 17.11.2017
comment
Я попробовал предложенное решение, но поведение такое же, местоположение и регион установлены правильно. - person kalyan; 17.11.2017
comment
Я думаю, это должно решить вашу проблему. Просто создайте дату в новом файле Excel с помощью Microsoft Excel, а затем выполните указанный мной код, установив разные регионы и языки, такие как французский, Бразилия, Германия, Япония, Китай и т. д., а затем сохраните файл в формате Pdf или Html и увидите, форматы дат меняются. Это должно произойти не только в Aspose.Cells, Microsoft Excel также будет отображать даты по-разному, когда вы меняете язык и регион. Спасибо и привет. - person shakeel; 18.11.2017
comment
Это проблема в версии apose (aspose-cells-8.7.0), которую я использую, исправлена ​​​​в версии 8.9.2, спасибо за помощь. - person kalyan; 30.11.2017