Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создать файл Excel'я не используя ExcelApplication. [D7]


Страницы:   1 2

VladimirES ©   (2004-09-13 11:33:00) 

Многие наверника сталкивались с проблемой экпорта каких-нибудь данных в Еxcel. Если при этом использовать ExcelApplication то необходимо:
 загружать Excel, заполнять содержимое ячеек, править их форматы.
Для этого я обычно использовал Selection и пробегал им по всем нужным ячейкам, при этом скорость работы была не удовлитварительной.

Чего хотелось бы: 
Создавать сразу файл в формате Excel ( любой версии не обязательно последней).
  Описание формата файла я нашел, но разбираться в нем тяжеловато.

Незнает ли кто какой нить компоненты или интерфеса с помощью которых можно было это прлделать.


Amoeba   (2004-09-14 11:08:00) [1]

Посмотри этот компонент (TmxNativeExcel)
http://maxcomponents.net/components.html#NATIVEEXCEL


ЮрийК   (2004-09-13 20:20:00) [2]

blackman ©   (13.09.04 15:38) [20]
>VladimirES   (13.09.04 11:33)  
Пиши все в DBF файлы. Exel легко их откроет.

Или в cvs файлы, данные в текстовом виде через запятую.
Только форматирования не будет, это уже можно и через ОЛЕ, range.


blackman   (2004-09-13 15:38:00) [3]

>VladimirES   (13.09.04 11:33)  
Пиши все в DBF файлы. Exel легко их откроет.


sniknik   (2004-09-13 14:24:00) [4]

> Можно еще через ADO попробывать
создать, и работать с данными - легко. зато форматирования нет никакого.


Суслик   (2004-09-13 14:14:00) [5]


>  [17] den_777   (13.09.04 13:46)


> В MS OFFICE XP и 2003 любой документ можно сохранить в виде
> XML файла

Далеко не все так красиво.
Эти мягко говоря ламера из команды разработчиков офиса сделали работу с xml не очень хорошо.

1) Слабая документация. Несмотря на то, что многие теги являются необязательными по факту оказываются совершенно необходимыми, т.к. иначе не все корректно работает.
2) Не вся заявленная фукнциональность работает. В частности неверно работает автоматическое определение высоты строки: не работает заявленная взаимосвязь атрибутов AutoFitHeight и Height из тега ss:Row.
3) Сложности с колонтитулами. Они реализованы в бираном формате. Для разделение левой, центральной и правой секций используются описанные в документации к схеме управляющие символы &L, &C, &R. При ексель с mui этихъ символов не понимает - ему нужны Л, Ц и П. Можешь проверить.
4) Есть еще - нужно будет вспомню.

Мой вывод. Пользоваться можно, но осторожно. Скорее всего прийдется массово выводить в ексель, потом через ole загружать и выполнять некторые операции через OLE.

ЗЫ. Прошу не наезжать по поводу термина "ламеры" в отношении разработчиков офиса. Я ни в коей мере не отношусь так к разработчикам windows. Я так отношусь именно к программистам офиса. К такому выводу я пришел пройдя через взяимодействие в офисом через OLE, XML и BIFF8.
Я понимаю, что скорее всего кто-то найдется, кто скажет "в зеркало посмотри", "сам ламер" или еще что (защитников microsoft здесь много). Если такие люди найдутся, то я бы очень хотел вступить с ними в дискуссию только послеизучения ими взаимодействия XML и офиса.

ЗЗЫ. Все сказанное мной про XML и офис было протестированно на officeXP.


den_777   (2004-09-13 13:46:00) [6]

В MS OFFICE XP и 2003 любой документ можно сохранить в виде XML файла. Соответственно узнай структуру XML и формируй файл без всякого OLE, а с помощью XML-парсера. Кстати ,кажется, FASTREPORT именно так и делает.


Суслик   (2004-09-13 12:41:00) [7]


>  [15] PVOzerski ©   (13.09.04 12:31)

а, прошу прощения, облажался.


PVOzerski   (2004-09-13 12:31:00) [8]

2Суслик ©   (13.09.04 12:22) [13]:
Я как бы согласно исходным пожеланиям:
>Чего хотелось бы:  
>Создавать сразу файл в формате Excel (любой версии не обязательно последней).


Dmitriy O.   (2004-09-13 12:24:00) [9]

F1BOOK самый быстрый и экономный экспорт данных в Эксель
Можно еще через ADO попробывать


Суслик   (2004-09-13 12:22:00) [10]


>  [11] PVOzerski ©   (13.09.04 12:18)

А какже biff8?


evvcom   (2004-09-13 12:18:00) [11]


> в любом случаее для установки значения ячейки необходимо
> обращаться к каждой отдельно.

Совсем необязательно! Писать можно сначала в VarArray, а потом целиком этот VarArray одной операцией в Range.


PVOzerski   (2004-09-13 12:18:00) [12]

Я вот такое юзаю:
http://swiss.torry.net/samples/samples/db/pmexcel.zip

И никакого OLE :^)


Суслик   (2004-09-13 12:17:00) [13]


>  [7] VladimirES   (13.09.04 12:09)

у меня оно есть - это не очень хорошее описание, вернее не полное.
Посмотри еще здесь http://www.wotsit.org/

описания хорошо друг друга дополняют.


ASMiD   (2004-09-13 12:14:00) [14]

[8] - это еще зачем?


VladimirES   (2004-09-13 12:11:00) [15]

То evvcom  
в любом случаее для установки значения ячейки необходимо обращаться к каждой отдельно.


VladimirES   (2004-09-13 12:09:00) [16]

Здесь описание формата файлов Excel на английском:
http://sc.openoffice.org/excelfileformat.pdf
на www.sources.ru есть описание на русском


evvcom   (2004-09-13 11:53:00) [17]

Скорость в большей мере зависит от количества обращений к серверу автоматизации, поэтому минимизировав количество, заметно увеличишь скорость. Как это сделать, см. Digitman ©   (13.09.04 11:41) [4]. По возможности все операции надо делать над группами. Если и такая скорость не устроит, то можно покопать в направлении раннего/позднего связывания.


Rem   (2004-09-13 11:45:00) [18]

В поставке Delphi 6 Enterprize (насчет Delphi 7 не знаю) есть компонент FormulaOne: закладка ActiveX -> F1Book
Сохраняет в формате Excel 5.0


Digitman   (2004-09-13 11:41:00) [19]


> Для этого я обычно использовал Selection и пробегал им по
> всем нужным ячейкам, при этом скорость работы была не удовлитварительной


можно подумать, тебе кто-то запрещал использовать обращение к Range[].Value := OleVariantValue с целью установки значений и форматов сразу целого диапазона ячееек, а не по одной ячейке за одну итерацию


Суслик   (2004-09-13 11:40:00) [20]


> XLReports, кажись...

они через OLE (тоже кажись)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо