SAPфорум.RU
https://www.sapboard.ru/forum/

XLSX Workbench
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=86294
Страница 8 из 15

Автор:  ksn [ Пт, дек 22 2017, 12:44 ]
Заголовок сообщения:  Re: XLSX Workbench

Предложеный Вами вариант немного не подходит! Есть вот такой бланк и главноя задача это вывести данные в таблицу!То есть простыми словами требуется программа которая будет впечатывать в существующий бланк
Изображение

Автор:  Бородин Игорь [ Пт, дек 22 2017, 13:56 ]
Заголовок сообщения:  Re: XLSX Workbench

ksn написал:
Предложеный Вами вариант немного не подходит
Не понимаю чем он не подходит... если в таблице должно быть фиксированное количество строк (включая пустые и заполненные), тогда добавьте фиксированное количество строк в исходную таблицу в ABAP-программе.

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

Автор:  ksn [ Пт, дек 22 2017, 14:32 ]
Заголовок сообщения:  Re: XLSX Workbench

Спасибо за ответы! Прийдется в таблице заполнять пустые строки для вывода!

Автор:  malkovich [ Пт, мар 23 2018, 08:07 ]
Заголовок сообщения:  Re: XLSX Workbench

Хочу поблагодарить автора за разработку, спасибо!

И вопрос ко всем присутствующим: не сталкивались ли с такой ошибкой?
Цитата:
Удаленные записи: Формула из части /xl/worksheets/sheet550.xml
Удаленные записи: Формула из части /xl/calcChain.xml (Свойства вычислений)

Ошибка появляется в том случае, если передаю в одну из ячеек формулу (и в итоге не передается, как можно понять из описания ошибки). Если ту же формулу добавляю руками, она отрабатывает без проблем. В опции вывода указываю, что это формула. Что еще может быть неправильно?
Формула: '=СУММ(R[-1]C:R3C)'

Автор:  baboon [ Пт, мар 23 2018, 10:03 ]
Заголовок сообщения:  Re: XLSX Workbench

Попробуйте передать не СУММ, а SUM.

Автор:  malkovich [ Пт, мар 23 2018, 10:11 ]
Заголовок сообщения:  Re: XLSX Workbench

С SUM результат тот же. Вообще установлена русская версия Excel, если что

Автор:  baboon [ Пт, мар 23 2018, 10:56 ]
Заголовок сообщения:  Re: XLSX Workbench

У меня, тоже, русская. Если написать формулу СУММ(A1:B1),
и посмотреть xml внутри xlsx, то там будет
<f>SUM(A1:B1)</>.
Попробуйте добавить свою формулу руками
и посмотреть как она будет выглядеть в xml.

Автор:  Бородин Игорь [ Пт, мар 23 2018, 11:49 ]
Заголовок сообщения:  Re: XLSX Workbench

malkovich написал(а):
Если ту же формулу добавляю руками, она отрабатывает без проблем
Есть отличие между тем, как эксель показывает формулу на экране (учитывая язык и прочие настройки) и тем, как формула хранится в файле (внутренним представлением). Почитайте вот здесь как правильно динамически передавать формулу, а здесь рабочий пример использования формул.

UPD:
1) в формуле '=СУММ(R[-1]C:R3C)' однозначно надо заменить СУММ на SUM
2) вы пытаетесь в одной формуле объединить указание абсолютной ссылки на ячейку R3C и относительной R[-1]C . Видимо при интерпретации этой формулы происходит сбой. Переработайте формулу так, чтобы было либо все абсолютные ссылки, либо все относительные (см.выше ссылку с инструкцией).

Автор:  malkovich [ Пт, мар 23 2018, 12:01 ]
Заголовок сообщения:  Re: XLSX Workbench

baboon, спасибо, помогло
Бородин Игорь спасибо за разработку и за ссылки. У меня в файле указан относительный вид ссылок, его же использовала в формуле, СУММ на SUM потом исправила - всё равно формула не отображалась и не работала.
В xml файле выглядит примерно так - SUM(V$3:V11), в итоге использую её. Жаль, что с относительной не вышло, но тоже вариант, только подсчитать придется количество строк.

Автор:  Lukkam [ Вт, июн 05 2018, 19:50 ]
Заголовок сообщения:  Re: XLSX Workbench

Добрый день. Спасибо за такую масштабную разработку и подробную документацию.
Однако, должна отметить одну неприятную вещь.
В классе lcl_excelruntime, метод is_number любое значение, кроме дат, проверяет на то, является ли оно числом. Из-за этого, например, GUID (char24), имея значение 20180417114347797000008, при выводе в Excel преобразуется в 2,01804171143478E+22. Таким образом, сейчас решение искажает данные, и исходное значение в рамках Excel получить невозможно (по крайней мере, для версии 2010).

Автор:  Бородин Игорь [ Ср, июн 06 2018, 13:07 ]
Заголовок сообщения:  Re: XLSX Workbench

Lukkam написал(а):
значение 20180417114347797000008, при выводе в Excel преобразуется в 2,01804171143478E+22
Добрый день.

1) Формат целевой ячейки должен быть Текстовым. В этом случае любое значение должно выводиться "как есть", без преобразований.

2) Если, не смотря на п.1 , выводится криво, то обновите версию Workbench. Я когда-то ранее такую проблему устранял. Если версию обновить, по каким-то причинам, проблематично, воспользуйтесь обходным путем - добавьте пробел в начало GUID, тогда он будет обработан не как число, а как текст.

3) Если и версия свежая, то этот вопрос надо расследовать. Пришлите мне, пожалуйста, шаблон (лучше тестовый пример с одной ячейкой, для которой установлен Текстовый формат), мне надо посмотреть, почему этот формат не подхватывается.

Автор:  Lukkam [ Чт, июн 07 2018, 13:03 ]
Заголовок сообщения:  Re: XLSX Workbench

Бородин Игорь написал(а):
1) Формат целевой ячейки должен быть Текстовым. В этом случае любое значение должно выводиться "как есть", без преобразований.

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

Автор:  Бородин Игорь [ Чт, июн 07 2018, 14:45 ]
Заголовок сообщения:  Re: XLSX Workbench

Lukkam написал(а):
не подходит для таких компонентов, как динамические таблицы
Для динамики - применяйте пробел перед числом, а для деревьев и гридов с заранее известной структурой предусмотрена возможность задавать формат каждого столбца.

Автор:  Lukkam [ Пн, июн 18 2018, 15:27 ]
Заголовок сообщения:  Re: XLSX Workbench

Добрый день.
Прошу прощения за столь поздний ответ. Хотелось бы объяснить ситуацию.
Рассматривалась возможность применения Вашего инструмента для разработки универсального инструмента для вывода деревьев в Excel. То есть структура дерева не известна, и угадывать в какое строковое поле пользователи заведут 20 цифр не представляется возможным.
Таким образом, я наткнулась в Вашем инструменте на двойную проверку данных, как я уже указывала, при помощи метода is_number, который вызывается для всех типов данных, кроме дат. Такое решение мне непонятно, так что я просила пояснений цели такого решения, и возможного избегания такой проверки в последующих версиях инструмента.

Автор:  Бородин Игорь [ Пн, июн 18 2018, 15:57 ]
Заголовок сообщения:  Re: XLSX Workbench

Lukkam написал(а):
двойную проверку данных, как я уже указывала, при помощи метода is_number
А где там двойная проверка? метод is_number вызывается только по одному разу для каждого значения. И вызов этого метода связан с тем, что разные типы данных хранятся в XLSX-файле по-разному, либо в виде строк, либо в виде чисел.
Lukkam написал(а):
значение 20180417114347797000008, при выводе в Excel преобразуется в 2,01804171143478E+22
когда в ячейке установлен формат "Общий", то да, Эксель отображает число таким образом. Чтобы этого избежать, можно либо поменять формат ячейки на "Текстовый", либо (для вашего случая) просто использовать нечисловой префикс к значению. Обычно в качестве префикса используется одинарная кавычка, но в Workbench используйте пробел. Тогда Эксель не будет считать значение числом и оно выведется как положено.

Страница 8 из 15 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/