Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Вниз

Создать файл Excel я не используя ExcelApplication.   Найти похожие ветки 

 
VladimirES   (2004-09-13 11:33) [0]

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

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

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


 
Fay ©   (2004-09-13 11:37) [1]

XLReports, кажись...


 
Суслик ©   (2004-09-13 11:39) [2]


>  VladimirES   (13.09.04 11:33)


>   Описание формата файла я нашел, но разбираться в нем тяжеловато.

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

По сути вопроса: сходи на www.torry.net. Там такие компоненты были.


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


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

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


 
Digitman ©   (2004-09-13 11:41) [4]


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


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


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

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


 
evvcom ©   (2004-09-13 11:53) [6]

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


 
VladimirES   (2004-09-13 12:09) [7]

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


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

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


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

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


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


>  [7] VladimirES   (13.09.04 12:09)

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

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


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

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

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


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


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

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


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


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

А какже biff8?


 
Dmitriy O. ©   (2004-09-13 12:24) [14]

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


 
PVOzerski ©   (2004-09-13 12:31) [15]

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


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


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

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


 
den_777   (2004-09-13 13:46) [17]

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


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


>  [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.


 
sniknik ©   (2004-09-13 14:24) [19]

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


 
blackman ©   (2004-09-13 15:38) [20]

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


 
ЮрийК ©   (2004-09-13 20:20) [21]

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

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


 
Amoeba ©   (2004-09-14 11:08) [22]

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.035 c
1-1094555896
ZDenis
2004-09-07 15:18
2004.09.26
ООП


1-1095012576
suharew
2004-09-12 22:09
2004.09.26
TreeView


14-1094732548
вразлет
2004-09-09 16:22
2004.09.26
Средства для тестирования программ


3-1093933061
kaginava
2004-08-31 10:17
2004.09.26
UDF


14-1094803291
Pat
2004-09-10 12:01
2004.09.26
Клиент для форумов, использующих phpBB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский