Форум: "Базы";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
ВнизБаза *.xls через ADO в Delphi Найти похожие ветки
← →
Yurisimus (2005-07-26 14:17) [0]Уважаемые эксперты, проблема с базой Excel. Мне нужно программно создать Excel файл (с этим проблем нет) и потом программно же указать соответствующие форматы ячеек для столбцов (типа float, string, date, integer)... Если хотите предложить записать макрос в Excel, то лучше не отвечайте... Мне бы сам код посмотреть...
← →
Nikolay M. © (2005-07-26 14:30) [1]А почему обязательно через АДО?
Зачем суп есть вилкой, если есть ложка?
← →
Yurisimus (2005-07-26 14:41) [2]О ложке поподробнее напиши плиз, а через адо потому как нужно делать не маленькие запросы к базе, поэтому подцепляюсь через ADOQuery...
← →
Alex_Bredin © (2005-07-26 14:49) [3]http://delphibase.spb.ru/?action=viewtopic&topic=winoffice
← →
Nikolay M. © (2005-07-26 14:57) [4]Ты уж раздели мух от котлет.
Сначала ты говоришь
> программно же указать соответствующие форматы ячеек для
> столбцов (типа float, string, date, integer)...
а потом вдруг
> нужно делать не маленькие запросы к базе
Или для тебя это одно и то же?
http://www.delphikingdom.com/asp/section.asp?id=16
Цикл статей "По волнам интеграции" ну и все, что рядом.
← →
msguns © (2005-07-26 15:01) [5]> программно же указать соответствующие форматы ячеек для
> столбцов (типа float, string, date, integer)...
Таких форматов у екселя нетути
← →
Yurisimus (2005-07-26 15:07) [6]Николай, для тебя объясню поконкретнее...
Программа при включении проверяет создана ли база на диске, и если нет, то создает Excel файл программно, вот тут и нужно указать при создании формат ячеек, чтобы данные, которые будут забиваться отображались потом нормально. А твоё сравнение абсолютно двух разных вещей, таких как запрос и формат данных выглядит туповато...
← →
Yurisimus (2005-07-26 15:08) [7]Николай, для тебя объясню поконкретнее...
Программа при включении проверяет создана ли база на диске, и если нет, то создает Excel файл программно, вот тут и нужно указать при создании формат ячеек, чтобы данные, которые будут забиваться отображались потом нормально. А твоё сравнение абсолютно двух разных вещей, таких как запрос и формат данных выглядит туповато...
← →
Lexer © (2005-07-26 15:12) [8]>Yurisimus, вот я как делаю:
function FieldToVariant(Field: TField): OLEVariant;
begin
Result := EmptyStr;
case Field.DataType of
ftString, ftFixedChar, ftWideString, ftMemo, ftFmtMemo:
Result := """" + Field.AsString;
ftSmallint, ftInteger, ftWord, ftLargeint, ftAutoInc:
Result := Field.AsInteger;
ftFloat, ftCurrency, ftBCD:
if (Field is TFloatField) and TFloatField(Field).Currency then
Result := DoubleRound(Field.AsFloat, 2)
else Result := Field.AsFloat;
ftBoolean: Result :=
Field.AsBoolean;
ftDate, ftTime, ftDateTime:
Result := Field.AsDateTime;
end;
end;
********************************************
Ячейка := FieldToVariant(DataSet.Fields[I]);
← →
msguns © (2005-07-26 15:45) [9]Грузим ексель. Выбираем Сервис>Макрос>Начать запись>Ok
Щелкаем по ячейкам и назначаем им нужные форматы.
Сервис>Макрос>Остановить запись.
Сервис>Макрос>Макрос1>Войти
Смотрим на что-то вродеSelection.NumberFormat = "#,##0.00$"
Columns("B:B").ColumnWidth = 17.29
Range("B1").Select
Selection.NumberFormat = "dd/mm/yy;@"
Range("C1").Select
Selection.NumberFormat = "@"
Range("D1").Select
Selection.NumberFormat = "0"
Range("E1").Select
Selection.NumberFormat = "#,##0.00$"
Потом все это по-обезьяньи копируем в код, в котором фиксируем Range.
Жмякаем F9, прога отрабатывает, открываем ексель и, о чудо! в чейках нужный формат ;)
← →
Nikolay M. © (2005-07-26 15:47) [10]
> Yurisimus
Туповато выглядит твои неумение задавать вопросы и путаница с терминологией.
Ответа, зачем нужно форматировать ячейки екселя именно через АДО, от тебя не поступило. Как это сделать нормальными способами, сказано в [3] и [4].
← →
Yurisimus (2005-07-27 07:34) [11]Lexer и msguns(удивлен твоему нормальному ответу) спасибо, попробую сейчас...
Николаю:
1. Моё неумение задавать вопросы объясняется тем, что я обошел систему форума и задал вопрос по OLE в базах, потому что в подразделе форума по OLE очень редко отвечают и вообще заглядывают туда...
2. С терминологией я не путаюсь...
3. Почему именно через ADO я уже ответил в пункте [3]...
З.Ы. Еще Никола вопросы будут?
← →
Nikolay M. © (2005-07-27 09:49) [12]
> [11]
Помогать хаму желания не имею.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c