Здравствуйте, sergey2b, Вы писали:
S>Подскажите пожалуйста библиотеку для работы с Excel файлами на PC без использования Excel
Я точно не уверен, но насколько я знаю, формат xls является закрытым. Поэтому такие библиотеки вряд ли будут. А если и будут, то корявые и не поддерживающие все возможности xls. Я для этих целей пользуюсь COM-интерфейсами Excel. Единственный недостаток — необходимо, чтобы на компьютере, где запускается приложени был установлен этот самый Excel. Если же нужно сделать что-то универсальное, то мне кажется xls — не самый подходящий формат. Лучше выбрать какой-то другой, открытый формат.
S>Подскажите пожалуйста библиотеку для работы с Excel файлами на PC без использования Excel
Библиотек много, выбирай на вкус — что тебе делать-то с ними? Читать, писать, насколько сложный формат?
Кстати, последний XLSX вообще запакованный XML, парсить можно чем угодно.
Здравствуйте, Lepsik, Вы писали:
ZS>>Я точно не уверен, но насколько я знаю, формат xls является закрытым.
L>абсолютно открытый майкрософтом
L>или вы думаете как OpenOffice работает?
Они его крякнули, а уже потом MS судебным решением заставили открыть форматы Doc(Exel,Access итд), до этого крякеры из OO описали формат стореджей, а MS просто тупо переписал чужой манул, второй мануал предпочтительней, потому как в первом мануэле от OO имеются ошибки.
В основу формата положена технология записи потоков IStream, краткая суть: все потоки записываются блоками по 512 (или 4096)байт в своем файловом адресном пространстве, в качестве алгоритма размещения блоков используется FAT.
Если ты пишешь под windows, то для записи и чтения можно использовать интерфейсы IStorage, тогда можно забыть о том как это устроено внутри, нужно лишь знать формат Exel (описанный MS), если стоит задача писать свое с нуля, то нужно ковырять в сторону OpenOffice, читалка пишется элементарно,
тем более, что читалки уже имеются на многочисленных опенсорных развалах, с писалкой будет напорядок сложнее, вменяемых открытых сорцев в природе нет, OpenOffice за собой тянет Wine в части IStream и IStorage, это очень много.
До 15МБ алгоритм записи IStorage достаточно простой, можно за несколько дней реализовать самому, а после 15 метров придется погрузиться в FAT.
Здравствуйте, Lepsik, Вы писали:
L>я вас умоляю никаких там интерфейсов не надо — это тупой бинарный формат в пару сотен килобайт исходников
В таком случае — исходники в студию!!!)))
xls — это контейнер, реализующий свою собственную "мини-файловую" систему. В этом легко убедиться, открыв его через стандартную утилиту студии "DocFile Viewer". Если у Вас есть легкий способ доступа на чтение и запись к таким контейнерам, пришлите пожалуйста ссылку на пример. Было бы очень интересно, так как сам использую в своих проектах такие же контейнеры, доступ к которым осуществляю через IStorage.
Здравствуйте, Lepsik, Вы писали:
L>я вас умоляю никаких там интерфейсов не надо — это тупой бинарный формат в пару сотен килобайт исходников
На чтение MS storage-а исходников будет мало, по коду 80-200 строк, запись на порядки посложней.
Тем ни менее мой аналог MS-Storage giga.dll весит 67KB, всё без использования стороннего кода(кроме boost-а) и всяких интерфесов. Я не стал полностью реализовывать формат MS Storage, поскольку были идеи использовать свой формат в основе графических и мультимедийных форматов, что бы не было потом проблем с лицензиями, хотя jpeg2000 использует именно MS Storage, потом у меня всё заглохло.
Если пишешь по windows, то всё что тебе нужно знать, так это что и как и под какими тэгами пишется в Exel-ь файлах в этом стораже. Описание формата в природе где-то существует, есть подозрение что они лежат на сайтах MS, писалка делается через системные интерфейсы IStorage и IStream, т.е. ничего невозможного нет, и исходники будут не совсем большими. Вопрос только во времени реализации, большая часть удет не на кодинг и алгоритмы а на осознание экселевских тэгов, но если пишешь без виндов, то на эту работу можешь смело положить 4-7 человеко/месяцев.
Здравствуйте, ZegSoft, Вы писали:
ZS>Здравствуйте, Lepsik, Вы писали:
L>>я вас умоляю никаких там интерфейсов не надо — это тупой бинарный формат в пару сотен килобайт исходников
ZS>В таком случае — исходники в студию!!!))) ZS>xls — это контейнер, реализующий свою собственную "мини-файловую" систему. В этом легко убедиться, открыв его через стандартную утилиту студии "DocFile Viewer". Если у Вас есть легкий способ доступа на чтение и запись к таким контейнерам, пришлите пожалуйста ссылку на пример. Было бы очень интересно, так как сам использую в своих проектах такие же контейнеры, доступ к которым осуществляю через IStorage.
Опять же есть одна тонкость, которая может свести всё в ноль, помимо FATа, в этой системе есть мини FAT, такая система необходимая для размещения маленьких данных. Если эксельевский формат задействует miniFAT и если Exel не захочет зажевывать нормальные блоки по 512 байт, то становится совсем кисло и грустно, и даже с комовскими интерфейсами придется поплясать вокруг этого.