Можно ли создавать с помощью VF страниц "живые", а не "статичные" Excel файлы?
Вот только что столкнулся с ситуацией когда из простой ВФ страницы генерятся Excel файлы, причем все что для этого нужно - это просто указать в contentType у apex:page "application/vnd.ms-excel#имяФайла;charset=UTF-8".
сама страница состоит из таблиц, как чисто html-ных, так и apex:pageBLockTable.
и получается такой аккуратный Excel файл.
но он так скажем "статичный" - это просто "отражение" ВФ страницы. т.е. значение в колонке Сумма - это не формула вычисляющая из других колонок, а просто цифры.
ну и конечно меня спрашивают, а можно ли сделать настоящий, "живой" Excel файл, где значение в некоторых колонках, строках задаются формулами?
думаю просто попробовать включить Excel-ный формульный текст в содержание выводимых значений в таблицах на ВФ, но не уверен, что это так просто сработает.
Может быть у кого уже был подобный опыт, и можете подсказать, стоит ли пытаться "оживить" генерируемый Excel?
Вот только что столкнулся с ситуацией когда из простой ВФ страницы генерятся Excel файлы, причем все что для этого нужно - это просто указать в contentType у apex:page "application/vnd.ms-excel#имяФайла;charset=UTF-8".
сама страница состоит из таблиц, как чисто html-ных, так и apex:pageBLockTable.
и получается такой аккуратный Excel файл.
но он так скажем "статичный" - это просто "отражение" ВФ страницы.
т.е. значение в колонке Сумма - это не формула вычисляющая из других колонок, а просто цифры.
ну и конечно меня спрашивают, а можно ли сделать настоящий, "живой" Excel файл, где значение в некоторых колонках, строках задаются формулами?
думаю просто попробовать включить Excel-ный формульный текст в содержание выводимых значений в таблицах на ВФ, но не уверен, что это так просто сработает.
Может быть у кого уже был подобный опыт, и можете подсказать, стоит ли пытаться "оживить" генерируемый Excel?
Ты уверен, что это Excel? Быть может ты не знаешь, что Excel умеет открывать .html?
.xls - бинарный формат
.xlsx - основан на xml
Расширение не определяет содержание файла.
не уверен,
нет, не знал.
но формат именно такой: contentType у apex:page "application/vnd.ms-excel#имяФайла;charset=UTF-8".
открывается новое окно (куда грузится та страница), которое сразу выбрасывает системное окошко с выбором СОхранить или Открыть. И если сохранять, то пишется расширение .xls
так что не знаю что и сказать. но потребность в "оживлении" есть
[quote="Gres"]Ты уверен, что это Excel?
Быть может ты не знаешь, что Excel умеет открывать .html?[/quote]
не уверен,
нет, не знал.
но формат именно такой:
contentType у apex:page "application/vnd.ms-excel#имяФайла;charset=UTF-8".
открывается новое окно (куда грузится та страница), которое сразу выбрасывает системное окошко с выбором СОхранить или Открыть. И если сохранять, то пишется расширение .xls
так что не знаю что и сказать.
но потребность в "оживлении" есть
[quote="Gres"]Открой файл текстовым редактром и удивись![/quote]
Да, я удивилсё!
внутри разметка из html body.
Но вроде можно и редактировать, и сохранять с Excel в настоящем Excel формате...
Только с помощью стороннх сервисов. Либо самому разбирать и собирать бинарники или xml в зависимости от формата.
[quote="Gres"]Только с помощью стороннх сервисов. [/quote]
ага, значит просто вписать в разметку-ячейку формулу в надежде что Excel примет ее "как родную" - нет надежды?
формула воспримется просто как текст...
жаль...
[quote="Gres"]Попробуй открыть .xlsx документ как zip архив[/quote]
какой xlsx документ?
все что я могу - заставить страницу "прикинуться" .xls файлом...
или его сначала (сменить формат,) закинуть в zip, разархивировать?
Создай документ в excel с произвольным содержанием и попробуй открыть как архив
[quote="Gres"]Ты можешь просто указать расширение.[/quote]
Эх, да для клиента все должно из коробки работать без сложных телодвижений.
но я завтра все это попробую, но думаю что только для эксперимента.
Вроде как СФ опартнерился с МС, может скоро будут и стандартные решения...
Ошибаешься. Я делал и делаю xml который понимает excel как родной.
[quote="Gres"]Только с помощью стороннх сервисов.
Либо самому разбирать и собирать бинарники или xml в зависимости от формата.[/quote]
Ошибаешься. Я делал и делаю xml который понимает excel как родной.
Excel понимает и xml и html я же не спорю, наоборот, говорю, что xlsx основан на xml.
[quote="wilder"]Ошибаешься. Я делал и делаю xml который понимает excel как родной.[/quote]
Excel понимает и xml и html я же не спорю, наоборот, говорю, что xlsx основан на xml.
Пока салесфорс не начнёт нормально работать с zip архивами xlsx будет проблематичным форматом.
[quote="Gres"][quote="wilder"]Ошибаешься. Я делал и делаю xml который понимает excel как родной.[/quote]
Excel понимает и xml и html я же не спорю, наоборот, говорю, что xlsx основан на xml.[/quote]
Пока салесфорс не начнёт нормально работать с zip архивами xlsx будет проблематичным форматом.
Я делал и делаю xml который понимает excel как родной.
[quote="Gres"][quote="wilder"]Я делал и делаю xml который понимает excel как родной.[/quote]
Т.е. у тебя получалось делать xml с формулами?[/quote]
Да. Так же могу генерить очень много чего и для Word.
[quote="wilder"]Примеры кода или файлов?[/quote]
Хотелось бы увидеть и то и то
Я делал и делаю xml который понимает excel как родной.
wilder любит xml.
у меня Excel док всегда фиксированный, это просто экспорт кастомного репорта (но кол-во строк конечно произвольное).
а если его формат фиксирован, то получается что я могу:
1 - создать в Excel документ как я хотел чтобы он выглядел и полностью работающим в плане формул. 2 - сохранить как xlsx (а может даже как просто xml). 3 - открыть его в текстовом или др редакторе и внимательно изучить куда нужно вставлять значение и как итерировать строку со всеми ее формулами. 4 - сделать из распотрашенного файла шаблон, который и использовать в своем апекс коде.
[quote="wilder"]Я делал и делаю xml который понимает excel как родной.[/quote]
wilder любит xml.
у меня Excel док всегда фиксированный, это просто экспорт кастомного репорта (но кол-во строк конечно произвольное).
а если его формат фиксирован, то получается что я могу:
1 - создать в Excel документ как я хотел чтобы он выглядел и полностью работающим в плане формул.
2 - сохранить как xlsx (а может даже как просто xml).
3 - открыть его в текстовом или др редакторе и внимательно изучить куда нужно вставлять значение и как итерировать строку со всеми ее формулами.
4 - сделать из распотрашенного файла шаблон, который и использовать в своем апекс коде.
Я делал и делаю xml который понимает excel как родной.
wilder любит xml.
у меня Excel док всегда фиксированный, это просто экспорт кастомного репорта (но кол-во строк конечно произвольное).
а если его формат фиксирован, то получается что я могу:
1 - создать в Excel документ как я хотел чтобы он выглядел и полностью работающим в плане формул. 2 - сохранить как xlsx (а может даже как просто xml). 3 - открыть его в текстовом или др редакторе и внимательно изучить куда нужно вставлять значение и как итерировать строку со всеми ее формулами. 4 - сделать из распотрашенного файла шаблон, который и использовать в своем апекс коде.
Абсолютно все точно указал. За одним исключением там есть ещё заморочки со счетчиками строк и столбцов, а в остальном вроде без проблем.
[quote="Den Brown"][quote="wilder"]Я делал и делаю xml который понимает excel как родной.[/quote]
wilder любит xml.
у меня Excel док всегда фиксированный, это просто экспорт кастомного репорта (но кол-во строк конечно произвольное).
а если его формат фиксирован, то получается что я могу:
1 - создать в Excel документ как я хотел чтобы он выглядел и полностью работающим в плане формул.
2 - сохранить как xlsx (а может даже как просто xml).
3 - открыть его в текстовом или др редакторе и внимательно изучить куда нужно вставлять значение и как итерировать строку со всеми ее формулами.
4 - сделать из распотрашенного файла шаблон, который и использовать в своем апекс коде.[/quote]
Абсолютно все точно указал. За одним исключением там есть ещё заморочки со счетчиками строк и столбцов, а в остальном вроде без проблем.