Я использую POI из apache для чтения из файла Excel в Java-программе. В excel есть макросы, которые я воспроизвел на Java, но когда я сравниваю результаты, есть небольшие различия округления, которые я пытаюсь искоренить как можно больше. После загрузки кода POI 3.13 и запуска его в режиме отладки я понял, что они не обрабатывают числа, такие как Excel, который использует только 15 цифр и добавляет несущественные 0 после, но вместо этого использует представление на 17 цифр. Вы можете видеть это here. Но если глубже, кажется, что POI использует openxml и что openxml Cell уже хранит числа с плавающей запятой на 17 цифр вместо 15 ... Так что мне кажется, что есть ошибка в обработке числа в openxml, но я вполне удивил, что что-то, что «большое», как плохо обрабатывающее числа с плавающей запятой, раньше не было замечено, поскольку я ничего не могу с этим поделать.openxml и Excel Ограничение числа строк в цифрах
Так что мой вопрос: есть ли обходное решение, чтобы получить то же самое 15 цифр Excel при использовании POI? И лучше, может ли openxml быть исправленным, чтобы действовать как Excel по этому вопросу?
Спасибо за эту ссылку. Я получаю более или менее проблему, но в моем случае я не хочу продолжать использовать Excel. Это инструмент, который используется сейчас, и я должен заменить его, реализуя макросы внутри него в программе Java. Но я все еще получаю начальные значения из электронной таблицы. И моя цель - сравнить результаты (которые сейчас отличаются), чтобы убедиться, что макросы реализованы правильно. Поэтому, даже если мы сможем утверждать, что Excel делает наилучшую реализацию, цель openXML должна быть максимально похожа на Excel, и здесь дело обстоит не так. Поэтому они должны делать то же самое «косметическое» округление. – julien