Сохранение в xls - Native Excel

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Сохранение в xls - Native Excel

Сообщение tria » 18.02.2008 12:27:06

Связался с разработчиками Native Excel (выгрузка-загрузка в xls без ОЛЕ). Они согласились попробовать перевести их компонент на FreePascal и справшивают следующее:

"Я хотел узнать как в Free Pascal с поддержкой unicode, и поддерживает ли он следующие типы: interface, variant?
И есть ли какoе то Defined значение времени компиляции чтобы определить что это FreePascal
{$IFDEF xxxx}
//это Free Pascal
делаем что то только для Free Pascal
{$ENDIF}"

Хотел бы, чтобы мне помогли составить правильный ответ. По пунктам, что знаю:
1 unicode - есть тип WideString. Еще была какая-то директива компилятору - я не использовал - напомните плиз.
2. interface - я не знаю, не работал.
3. variant - есть, но есть подводные камни. В отличие от Делфи будет выдавать ошибки при операциях int+float, int+unassigned
4. {$ifdef FPC}
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

Сообщение webveter » 19.02.2008 17:25:16

Последнее время практически отказался от любых компонент для формирования документов MS Office. OLE тоже не использую.
Просто как миссионер пропагандирую свой способ :)
Это формирование документов MS Office в виде простых текстовых файлов. Поднимал тему на разных форумах. В результате вот такая последовательность постов:
Формирование отчетов в форматах MS Office без использования MS Office
Формирование документов Word и Excel на сервере Django
MS Word и web-фреймворк. Продолжение
webveter
незнакомец
 
Сообщения: 2
Зарегистрирован: 19.02.2008 16:03:38
Откуда: Киев

Сообщение tria » 19.02.2008 20:49:08

В моем случае работать с шаблонами не получится.
Вариант сохранять в формате html - это интересно.
А никто не сталкивался с какими-то компонентами, облегчающими сей процесс?
Надо не просто текст в ячейках, а еще и границы, шрифты, выравнивания, объединенния ячеек...
правда без формул
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

Сообщение Bohdan » 19.02.2008 21:02:10

А никто не сталкивался с какими-то компонентами, облегчающими сей процесс?

Я в не в ексел, а в ворд данные експорчу...
Проблем не возникает. Использую XML документ (расширение .DOC ставлю, что бы пользователя не смущало).
Ты возми сохрани XLS документ как XML документ, загляни в текстовом редакторе во внутрь и со всем разберешся.... :wink:

ЗЫ: Если потребуется, то могу с графикой помочь (я типа XMLCanvas сделал)
Bohdan
новенький
 
Сообщения: 87
Зарегистрирован: 11.05.2005 11:31:46
Откуда: Ukraine, Kyiv

Сообщение webveter » 19.02.2008 23:00:28

tria
Рекомендую именно в MHT. Можно включать графику, формулы, разбивку на страницы, диаграммы... В блоге описал. Объединение ячеек и все остальное - сделай что надо в Word/Excel - сохрани в MHT - открой блокнотом и посмотри как надо делать программно.
Для использования примитивных шаблонов хитрости не надо. Файл разбивается на 3 части. Header и Footer постоянны. А средняя часть (body) и есть та часть, которую надо сформировать. Как склеить 3 куска текста надеюсь пояснять не надо :wink:
А вообще подумываю для построения отчетов прикрутить питоновские шаблоны. Уж больно удобно. Видел для дельфы компоненту для подключения питона.
У меня большое приложение на дельфах и все, что последнее время меняется - это отчеты. По этому удобнее подключить под отчеты интерплетируемый язык. Чтобы из-за каждого чиха не компилить приложение.
webveter
незнакомец
 
Сообщения: 2
Зарегистрирован: 19.02.2008 16:03:38
Откуда: Киев

Сообщение Bohdan » 20.02.2008 02:16:17

webveter
под отчеты интерплетируемый язык
Есть бесплатный RemObject Script (как по мне очень качественная штука), зачем другой язык?

Я не согласен на счет MHT, все таки XML предпочтительней:
1) Новый формат майкософт офиса это ексемель
2) У оупенофиса также основной формат XML
3) Если с офиса 2007 сохранить файл в режиме совместимости с офисом 2003, он сохраняется как XML, т.е. XML позволяет практически все...
Bohdan
новенький
 
Сообщения: 87
Зарегистрирован: 11.05.2005 11:31:46
Откуда: Ukraine, Kyiv

Сообщение Vadim » 20.02.2008 11:12:54

Зато если сохранять документ в чистом HTML, то его можно посмотреть под любой ОС, там где есть браузер.
В подавляющем большинстве случаев нужны только самые общеупотребительные свойства форматирования - название\величина шрифта, выравнивание, таблицы (с заголовками или без - неважно), выделение цветом участка кода.
Впрочем, не настаиваю, если нужно XML, пусть будет XML. :) Просто я уже несколько лет делаю все отчёты исключительно в HTML и ни разу не пришлось напрягаться для какого-нибудь прибамбаса - чистый текст и ничего более...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Bohdan » 20.02.2008 12:42:57

А чего спорить то?
Нужно хорошо продумать интерфейс типа TCustomXLSReport и
далее сделать THTMLReport, TXMLReport и т.д.
Bohdan
новенький
 
Сообщения: 87
Зарегистрирован: 11.05.2005 11:31:46
Откуда: Ukraine, Kyiv

Сообщение tria » 20.02.2008 12:53:26

Во-во
Только у меня:
а. На ближайшие пару месяцев до этого руки не дойдут - наконец-то проект "натягиваю" на Линукс и ГТК2
б. Никогда небыл веб-программистом и никогда не изучал формат html.
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

Сообщение Vadim » 20.02.2008 15:23:52

Никогда небыл веб-программистом и никогда не изучал формат html.

Поверьте, по сравнению с Excel это совершеннейший пустяк. :)
Для начала можно почитать вот этот справочник http://html.manual.ru/. Там практически по всем элементам HTML даны понятные описания.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Bohdan » 20.02.2008 16:14:22

Вот приведу пример в XML (кусочек файла):

Задаются параметры шрифта:
Код: Выделить всё
 
  <Style ss:ID="s65">
   <Font ss:FontName="Calibri" x:CharSet="204" x:Family="Swiss" ss:Size="16"
    ss:Color="#000000" ss:Bold="1"/>
  </Style>
</Styles>


Собственно сама табличка, элемент №5 использует заданный ранее шрифт :
Код: Выделить всё
<Worksheet ss:Name="п╥п╦я│я┌1">
  <Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="7" x:FullColumns="1"
   x:FullRows="1" ss:DefaultRowHeight="15">
   <Row ss:AutoFitHeight="0">
    <Cell><Data ss:Type="Number">1</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell><Data ss:Type="Number">2</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell><Data ss:Type="Number">3</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell><Data ss:Type="Number">4</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s65"><Data ss:Type="Number">5</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell><Data ss:Type="Number">6</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell><Data ss:Type="Number">7</Data></Cell>
   </Row>
  </Table>
Bohdan
новенький
 
Сообщения: 87
Зарегистрирован: 11.05.2005 11:31:46
Откуда: Ukraine, Kyiv


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 90

Рейтинг@Mail.ru