11.01.2010, 18:46 | #1 |
Участник
|
Формирование BIFF файла
Заморачивался ли кто-то формированием BIFF xls файла в ручную? Конкретно интересует как реализовать объединение ячеек. Уже всю голову сломал, читая описания форматов, так и не понял
|
|
12.01.2010, 16:44 | #2 |
NavAx
|
Посмотри в исходниках OpenOffice.
Там 100% должно быть. Только зачем? Не хотят покупать MS Office - так есть же да хотя бы тот же OpenOffice.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
12.01.2010, 17:19 | #3 |
NavAx
|
Немножко покопал на тему:
Прежде чем лезть в OO (там всё слишком сильно запущено), советую глянуть сюда. Есть проект http://cpansearch.perl.org/src/JMCNA...iteExcel-2.35/ WriteExcel - писатель Excel-файлов на Perl. Там есть файлик http://cpansearch.perl.org/src/JMCNA...l/Worksheet.pm с интересным методом merge_cells($first_row, $first_col, $last_row, $last_col). Ессно, там есть и сериализатор всего в .xls файл. Perl, думаю, особых проблем с пониманием не вызовет. Удачи!
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
|
За это сообщение автора поблагодарили: greench (1). |
12.01.2010, 17:43 | #4 |
Участник
|
еще Apache POI - там вообще классово близкая жаба - только почему бы не писать Office Open XML?
|
|
12.01.2010, 17:57 | #5 |
Участник
|
Спасибо, посмотрю. Проблема не в покупке офиса. Проблема в выгрузке данных в эксель на пользовательских машинах, с хрен знает как настроенное виндой и постоянно вылетающими COM объектами. Аксапта 2.5, AOS-ов нет, поэтому выполнять выгрузку на сервере нет возможности.
|
|
12.01.2010, 18:05 | #6 |
NavAx
|
"Аксапта 2.5, AOS-ов нет ... на пользовательских машинах, с хрен знает как настроенное виндой и постоянно вылетающими COM объектами"... контора явно населена роботами...
Это уже состояние полураспада какое-то.. Так запустить IT-инфраструктуру надо постараться. Либо уволить всех админов с эникейщиками впридачу... Сочувствую. По поводу COM и Ax 2.5 советую более аккуратно работать с COM интерфейсами, Releaseить вовремя и вообще посмотреть, как пере/сделано в 4ке.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
12.01.2010, 18:15 | #7 |
Участник
|
Не так все плохо. Просто корпорация с кучей компаний с зоопарком из Аксапт 2.5, 3.0, 4.0, с админами на клиентах - компаниях корпорации, с которыми уже заманались бодаться. Решили один раз сделать собственную выгрузку и забыть об этих глюках как о страшном сне.
В том то и дело что я хочу уйти от использования COM, я буду формировать просто поток BIFF и все. Под BIff2 уже все готово. |
|
13.01.2010, 10:52 | #8 |
MCTS
|
А какую версию документа вы готовите?
MERGEDCELLS вроде поддерживается начиная с восьмой версии, т.е. BIFF8.0
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
14.01.2010, 10:28 | #9 |
Участник
|
MergedCells и MergeCell не одно и тоже. Объединение в BIFF5 работает без проблем.
|
|
14.01.2010, 12:44 | #10 |
MCTS
|
Цитата:
Объединение в BIFF5 работает без проблем
Цитата:
как реализовать объединение ячеек
Для одного диапазона сигнатура должна быть следующей E5 00 A0 00 01 00 r1 r1 r2 r2 c1 c1 c2 c2 где E5 00 - код команды A0 00 - длина данных 01 00 - количество диапазонов r1, r2, c1, c2 - координаты диапазона Например word(0xE5); word(0xA0); word(0x01); word(rowBegin-1); word(rowEnd-1); word(colBegin-1); word(colEnd-1); E5 00 A0 00 01 00 01 00 03 00 04 00 06 00 объединят ячейки E2-G4
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
|
За это сообщение автора поблагодарили: greench (1). |
14.01.2010, 14:50 | #11 |
Участник
|
Проблема именно в том, что я не знал как это сделать, т.е. именно код команды как-то пропустил, хотя и смотрел по ману. Видимо плохо смотрел.
|
|