Экспорт в Excel

отредактировано 08:34 Раздел: FastReport 3.0
Хочу купить FastReport3, но некоторые проблемы с экспортом в демо-версии не дают покоя. Поиски по документации и форуму ничего не дали.

Окружение: WinXP SP2 Rus, Delphi6, FR3Demo, MS Office 2003, в качестве разделителя разрядов в Regional Settings стоит пробел.

Отчет формируется прекрасно, в Excel тоже все хорошо выглядит, НО: числа экспортируются как текст (например, '10 000'), а надо иметь возможность проводить с ними некоторые математические операции.

Ряд экспериментов показал, что если в программе написать ThousandSeparator=' ', то в Excel в ячейках с числами появляются зеленые треугольнички с сообщением "Число отформатировано как текст" и в принципе его можно преобразовать в число путем дополнительной операции, но это не понравится заказчику.

Если же в программе поставить ThousandSeparator=',' , то в Excel уже просто все так как надо (и разделитель разрядов - пробел, и числа воспринимаются как числа), но зато в самом отчете (в программе) тысячи от сотен отделяются запятой (это правильно, но надо, чтобы был пробел).

Если бы у фильтров экспорта были события OnBeforeExport и OnAfterExport, проблема бы решилась изменением ThousandSeparator на ',' перед экспортом и сразу обратно на пробел после, но событий таких нет...

Что делать?
Заранее благодарен за все предложения, особенно за комментарии от разработчиков FastReport

Комментарии

  • отредактировано 08:34
    Тема уже обсуждалась и не раз:
    http://www.fast-report.com/ru/forum/index....&highlite=excel
  • отредактировано 08:34
    Спасибо! Внимательно перечитал все темы еще раз. Наиболее полно эта проблема обсуждается здесь:

    http://www.fast-report.com/ru/forum/index....owtopic=471&hl=

    Но ни здесь, ни в других темах нет ответов - есть только констатация наличия проблемы. Версия у меня - демо, так что исходники покопать не могу не из-за лени.

    Кратко мой вопрос можно сформулировать так:

    Как добиться того, чтобы и в отчете, и в результате экспорта этого отчета в Excel в качестве разделителя разрядов использовался пробел и при этом числа в Excel обрабатывались как числа (чтобы с ними можно было проводить математические операции).
  • отредактировано September 2005
    2 barrel:
    Сможете решить такую задачу?
    Есть НЕЧТО в виде текста, есть формат объекта. Нужно определить:
    1. Попадает это нечто под этот формат или нет
    2. Если попадает, то попробывать преобразовать получившееся к определённому типу (тоже непонятно - а к какому именно ?)
    3. Повторять цикл пока не закончится список форматов.

    Насколько я понимаю проблема именно в этом, т.к. экспорт оперирует уже с текстом, который получился в объекте FR и понятия не имеет - какие там типы (не путать с форматом !!!) использовались при генерации результата.
    Т.е. нужно решить обратную задачу (имеем текст и формат - нужно определить и получить исходное "значение" объекта FR до его форматирования).
  • отредактировано 08:34
    Нда, задачка не из легких. Но все-таки, имхо, неприменима к данному случаю, ибо если использовать запятую в качестве разделителя разрядов, то экспорт прекрасно понимает, что речь идет о числе (именно экспорт, а не Excel, т.к. в системных настройках остается все тот же пробел).
  • отредактировано 08:34
    написал:
    Но все-таки, имхо, неприменима к данному случаю, ибо если использовать запятую в качестве разделителя разрядов, то экспорт прекрасно понимает, что речь идет о числе

    Вот это http://www.fast-report.com/en/forum/?p=/discussion/471 хорошо читал ? Похоже что нет ;) )

    При экспорте в ячейку пишется VARIANT - при этом происходит автоматическое преобразование типов - поставь вместо разделителя дробной части не запятую, а точку - и экспорт перестанет понимать что это число ;) )
  • отредактировано 08:34
    Читал несколько раз. Это действительно наиболее близкая тема. Но, позволю себе заметить, она так и не разрешилась.

    Ладно, я согласен, что пишется Variant (с точкой тоже попробовал). Получается, резюме - ничего нельзя сделать? А что насчет событий у фильтров экспорта - про них даже в мануале пишут, а в реальности - нет их.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.