Существует ли где-нибудь библиотека Java, доступная, который поддерживает точно строки формата Excel?

Для JAVA-приложения, которое перетаскивает данные вместе из некоторых источников и делает само некоторое вычисление, мы хотим предложить пользователям возможность использовать их собственные строки формата и предпочли бы синтаксис строки формата, который они знают от Excel (например. "$ "#,###.,0) который, оказывается, то же, используемое в .NET и Analysis Services.

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

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

Существует ли библиотека, или мы должны были бы разработать это сами?

Я не могу предположить, что мы - единственные, у кого есть эта проблема.

ПОИ, как предложено Рождеством M, кажется, не предлагает решения. Какие-либо другие идеи?

9
задан Frank 4 August 2010 в 09:58
поделиться

5 ответов

Есть ли библиотека, или нам придется ее разработать самостоятельно?

Проверьте ExtenXLS , Java Spreadsheet SDK или его версию с открытым исходным кодом OpenXLS (под GPLv. 3). О OpenXLS:

OpenXLS - это версия с открытым исходным кодом ExtenXLS - ведущая Java Пакет SDK для электронных таблиц.

OpenXLS - это безопасный способ встраивания расширенная электронная таблица Java функциональность в ваших приложениях.

С тем же кодом промышленной прочности. как ExtenXLS3, OpenXLS - надежный исполнитель, который дает вашу Java приложения электронная таблица функциональность, необходимая вашим пользователям, и тогда немного!

Предоставьте своим пользователям бизнес-аналитику заявки и отчеты в формате они знают и любят, в комплекте с Диаграммы, изображения, код VB и все функции Excel в неизменном виде.

Я быстро взглянул на API и обнаружил FormatHandle # convertFormatString (String) , который преобразует строку формата в стиле Excel в строку формата Java .

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

2
ответ дан 4 December 2019 в 21:47
поделиться

Apache POI может делать то, что вы ищете.

3
ответ дан 4 December 2019 в 21:47
поделиться

Для Java не существует библиотеки, которая бы выполняла такой анализ. Обратный инжиниринг Excel для покрытия всех тестовых случаев потребует много времени для такого нишевого продукта.

Поскольку .net преобразует 100% ваших тестовых примеров, я предлагаю вам сосредоточиться на вызове .Net в вашем приложении Java .

3
ответ дан 4 December 2019 в 21:47
поделиться

(Добавление еще одного ответа, поскольку вы ссылаетесь на мой первый в своем вопрос сейчас)

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

Возможно, это подойдет как реализация NumberFormat

0
ответ дан 4 December 2019 в 21:47
поделиться

для десятичного формата, включая язык и прочее:

http: / /www.jdocs.com/javase/7.b12/java/text/DecimalFormat.html

http://www.freshsources.com/Format.htm

http://www.java2s.com/Code /Java/I18N/JavaI18NFormatNumberFormat.htm

Вы можете настроить вывод decimalFormat, используя свои собственные символы DecimalFormatSymbols. Можно установить строку, используемую для представления NaN и многого другого.

http://download.oracle.com/javase/6/docs/api/java/text/DecimalFormatSymbols.html

для формата даты:

http://javatechniques.com/blog/dateformat- и-simpledateformat-examples /

для обоих в текстовом формате JFormattedTextField

http://www.java2s.com/Code/Java/Swing-JFC/Formatted-TextField.htm

http: //www.java2s.com/Code/Java/Development-Class/MakecustomInputTextFormatterinJava.htm http://www.java2s.com/Code/Java/Development-Class/Formatter.htm http:// www.java2s.com/Code/Java/Development-Class/ApplyamasktoString.htm

1
ответ дан 4 December 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: