Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Ищется формат сохранения таблиц Excel из одного файла


KSergey ©   (28.10.20 22:24

Скажите, может кто знает
Нужен формат сохранить Excel-таблицу (вернее такой формат, который бы открыл MS Excel), который бы удовлетворял условиям:
1) Все состоит из одного файла
2) Позволяет сохранять несколько вкладок
3) Сохраняет в себе свойства документа (колонтитулы, ориентацию страницы, "уместить все на лист" и т.п.)
4) Позволяет размещать картинки

Без пункта 4 отлично подходит формат "Таблица XML 2003" (по названию этого формата в Excel). Понятный xml, все здорово. Но пункт 4 в ней невыполним.

Есть формат mht, тоже все в одном файле, есть картинки, более-менее хорошо почти все, но заморочено несколько вкладок делать (формат замороченный несколько), и это бы ладно.
Но не удается никак пункт 3 реализовать в части задания ориентации листа и "упихать все на 1 лист". Причем если всего 1 вкладка - то для этого есть решения в интернете, работают. Но для нескольких вкладок формат чуть другой - и все, и ничего там excel не хочит воспринимать, даже сам не все пишет (т.е. устаналиваешь "разместить на одну страницу", например -а ничего нового excel в файл не добавляет про это, соответственно и настройку эту не сохраняет.
А в остальном формат подходящий.

Может еще какие-то форматы есть понятные, из одного файла состоящие и все свойства сохраняющие?
Попробовал сохранить в Open Format - а он такой же корявый как и формат самого Excel - архив из кучи файлов....

Формат самого Excel - это что-то с чем-то конечно...
Собственно основное что в нем принципиально для меня капец плохо - это то, что нельзя нормально сформировать данные для таблицы в нем в одном месте. Обязательно надо не чисовые данные складывать в отдельный файл "ресурсов" и на него вставлять ссылки. Это капец. Задумка авторов как бы понятна "экономить", но по факту совершенно не жизненная в использовании. Причем текстовые данные иначе не удалось мне сохранить, зачем такое жесткое ограничение делать - не пнятно.


KSergey ©   (28.10.20 22:25[1]

Может еще есть какие-то понятные форматы?


KSergey ©   (28.10.20 22:27[2]

Да, разные СОМ не предлагать. Ну потому как уже есть определённая технология формирования файла через xslt-преобразования, никто сейчас срочно не кинется все менять, а результат уже нужен. Да и по скорости никакое СОМ не сравнится, конечно.


manaka ©   (29.10.20 14:13[3]


> Нужен формат сохранить Excel-таблицу (вернее такой формат,
>  который бы открыл MS Excel), который бы удовлетворял условиям:
>
> 1) Все состоит из одного файла
> 2) Позволяет сохранять несколько вкладок
> 3) Сохраняет в себе свойства документа (колонтитулы, ориентацию
> страницы, "уместить все на лист" и т.п.)
> 4) Позволяет размещать картинки

Есть такой формат - .xls
;)


KSergey ©   (29.10.20 18:32[4]

Под пункт 1 не подходит.
Ну т.е. он снаружи как бы один это файл, но по факту это ж архив с кучей файлов.
К формулировке первого пункта можно прискрестись, конечно )


manaka ©   (29.10.20 21:12[5]


> Ну т.е. он снаружи как бы один это файл, но по факту это
> ж архив с кучей файлов.

Даже zip-архив с кучей файлов внутри это тоже ОДИН файл.

Зачем хотеть непонятного? Вы бы хоть цели этого хотения обрисовали, задача то в чем?


KilkennyCat ©   (30.10.20 10:45[6]

.xls - это не архив.


KSergey ©   (31.10.20 09:39[7]

> manaka ©   (29.10.20 21:12) [5]
> Даже zip-архив с кучей файлов внутри это тоже ОДИН файл.
> Зачем хотеть непонятного? Вы бы хоть цели этого хотения обрисовали, задача то в чем?

Видимо я в самом деле невнятно объяснил.
Когда я говорю про "один файл" - то речь не про формально "один файл". Имеется ввиду один файл исходника данных для excel, так сказать. В xml или каком-то еще текстовом формате.
Например, если сохранить ил Excel файл в формате "Таблица xml 2003", то мы получаем замечательный очень понятный по структуре xml-файл. Единственный файл, один файл исходника информации. И в это файл мы может дописывать все что нам нужно, сделав на его основе шаблон. И с ним вообще все классно, кроме одного: нельзя вставлять картинки. Принципиально нельзя (это явно написано в документации).

И задача в том и есть, чтобы простыми средствами на основе шаблона формировать свои файлы с данными для Excel.

А xls файл - он хоть и один, но состоит внутри из кучи файлов, формировать которые, очевидно, замороченнее чем один файл исходника. Понятно, что нет ничего невозможного и формат там тоже понятный, но ищется формат именно одного файла исходника, а не архива из кучи файлов.


cryptologic ©   (01.11.20 15:02[8]


> KSergey ©   (31.10.20 09:39) [7]


А первоначальные данные в чем хранятся?  а как на счет .doc (Word) формата, он и таблицы умеет хранить и картинки


cryptologic ©   (01.11.20 15:07[9]

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


cryptologic ©   (01.11.20 15:17[10]


> KSergey ©   (31.10.20 09:39) [7]


Даже тот же *.ini формат может любые структурированные данные хранить и даже бинарные данные


manaka ©   (01.11.20 19:51[11]


> cryptologic ©   (01.11.20 15:17) [10]
>

Ему, блин, надо, чтобы его шаблон Екселем открывался ))))
Хранить то (понятно) можно хоть в txt. Но человек хочет непонятного.


cryptologic ©   (02.11.20 04:01[12]


> manaka ©   (01.11.20 19:51) [11]

Ну это как типа пытаться сделать холодильник из стиральной машины, я правильно понял?


KSergey ©   (02.11.20 08:10[13]

> cryptologic ©   (02.11.20 04:01) [12]
> Ну это как типа пытаться сделать холодильник из стиральной машины, я правильно понял?

Нет


KSergey ©   (02.11.20 08:13[14]

> cryptologic ©   (01.11.20 15:17) [10]
> Даже тот же *.ini формат может любые структурированные данные хранить и даже бинарные данные

Мне одно не понятно: вы понимаете простой факт того, что Excel корректно может открыть и отобразить лишь понятные ему форматы, а не "лишь бы что я тут сейчас напридумываю"?
Зачем вы пишете про ini или json - можете пояснить применительно к Excel?


KSergey ©   (02.11.20 08:15[15]

> manaka ©   (01.11.20 19:51) [11]
> Ему, блин, надо, чтобы его шаблон Екселем открывался ))))

Именно так.

> manaka ©   (01.11.20 19:51) [11]
> Но человек хочет непонятного.

Могли бы вы уточнить что именно вам не понятно из написанного мной?
Быть может вы просто никогда не делали открываемый ecel'ом файл руками?


manaka ©   (02.11.20 08:57[16]


> Excel корректно может открыть и отобразить лишь понятные
> ему форматы

так вот туда и копайте


manaka ©   (02.11.20 09:52[17]


> И задача в том и есть, чтобы простыми средствами на основе
> шаблона формировать свои файлы с данными для Excel.

вручную что-ли?

- что есть "простыми средствами"?
- почему нельзя программно формировать "свои файлы" на основе своих данных в формате хls?


manaka ©   (02.11.20 10:17[18]


> Excel корректно может открыть и отобразить лишь понятные
> ему форматы

и какой формат он еще понимает, где есть несколько вкладок, картинки и форматирование страницы?
повторю [3]


KSergey ©   (02.11.20 11:30[19]

> manaka ©   (02.11.20 08:57) [16]
> > Excel корректно может открыть и отобразить лишь понятные ему форматы
>
> так вот туда и копайте

По исходному вопросу есть что еще сказать?


cryptologic ©   (03.11.20 22:57[20]


> KSergey ©  


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

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


Inovet ©   (04.11.20 01:10[21]

> [20] cryptologic ©   (03.11.20 22:57)

Зачем так дерзко отвечаешь уважаемому на этом форуме человеку? Его мы давно знаем, тебя недавно.


Тимохов ©   (04.11.20 02:48[22]

Внимательно прочел и вопрос и обсуждение.
Я тоже не понимаю, что хочет уважаемый KSergey.

Правда, чем не подходит штатный формат xls или xlsx?
Вот не понимаю.
Формат xls - это бинарник (отстойного, имхо, формата). Один файл.
Формат xlsx - это по сути zip архив. Тоже один файл.

Такое ощущение, что KSergey хочет знать, как формировать файлы указанного формата.

Я xls делаю своей библиотекой. В 2006 году, используя описание формата BIFF8 (xls использует этот формат) от Open Office, написал свою библиотеку. Но там 64тыс строк только. Мало.
Но сейчас перешел на XLSReadWriteII, чтобы делать xlsx. Некогда самому было писать. Хотя, без глубокого знания формата xls использовать XLSReadWriteII проблематично будет, имхо.


Тимохов ©   (04.11.20 03:04[23]


> Формат самого Excel - это что-то с чем-то конечно...
> Собственно основное что в нем принципиально для меня капец
> плохо - это то, что нельзя нормально сформировать данные
> для таблицы в нем в одном месте. Обязательно надо не чисовые
> данные складывать в отдельный файл "ресурсов" и на него
> вставлять ссылки. Это капец. Задумка авторов как бы понятна
> "экономить", но по факту совершенно не жизненная в использовании.
>  Причем текстовые данные иначе не удалось мне сохранить,
>  зачем такое жесткое ограничение делать - не пнятно.


Не очень понятно, о каком формате идет речь - о xls или о xlsx.
Они принципиально похожи - оба Г.
Формат xls шел еще от Лотуса. Давно давно. Там была запись (в BIFF8 все хранится записями) SST - shared string table. В формате xlsx они по сути повторили это.

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

Мое имхо, что COM - не так уж плох. Если работать регионами, то получается изрядно быстро. Даже очень быстро. Правда у длины региона тоже есть ограничение, но можно их дробить. Но поставить значения от строки 1 до строки 100000 одним махом можно, используя вариантные массивы. Для COM зло - это работать по одной ячейке.

Но повозиться тоже придется.


Тимохов ©   (04.11.20 03:10[24]

И последнее.
KSergey, забудьте о других форматах, кроме xls и xlsx.
Другие форматы, в т/ч и якобы xml, есть Г. Сейчас лень вспоминать, но xml до xlsx был мертворожденным ублюдком, которого родили т.к. (думаю) MS заставили сделать формат открытым, они и родили этого ублюдка.
Вот xlsx уже нормальный формат.
В чем разница нормальности и ненормальности? Формат xlsx уже работает в независимости от локали, а вот xml до него - зависят от локали жестко (левый - это "Л" в русском Excel и "L" в английском и никак иначе).


cryptologic ©   (05.11.20 05:11[25]


> novet ©   (04.11.20 01:10) [21]
> > [20] cryptologic ©   (03.11.20 22:57)
>
> Зачем так дерзко отвечаешь уважаемому на этом форуме человеку?
>  Его мы давно знаем, тебя недавно.
>
>


Береборщил малось.. Дело в том, что это вы его знаете очень долго, а я нет.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо