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




Вниз

Конвертация таблицы в Excel 


AndrewK   (2002-03-28 14:10) [0]

Добрый день.

Конвертирую таблицу в Excel c использованием TExcelApplication следующим образом:

var TabGrid : Variant;
...
TabGrid := VarArrayCreate([0,(R - 1),0,(C - 1)],VarOleStr);
...
TabGrid[I,J] := dbGrid.Columns.Items[J].Field.AsString;
...
Worksheet.Range[Worksheet.Cells.Item[1,1],Worksheet.Cells.Item[R,C]].Value := TabGrid;
...

Данные переносятся, все вроде бы нормально, однако при попытке выполнить какие-нибудь операции в самом Excel с данными, например суммировании колонки, выясняется, что все ячейки заполнены строками. Если в эти ячейки зайти клавишей F2 (т.е. запустить редактирование) и нажать Enter, то строка переводится в число, что и требовалось. Очень не удобно.

Можно как нибудь сделать так, чтобы числовые данные автоматически становились доступными для выполнения операций с ними при использовании TExcelApplication?



AndrewK   (2002-03-28 15:12) [1]

Сам разобрался.
Кому интерестно:

Переписываем

TabGrid := VarArrayCreate([0,(R - 1),0,(C - 1)],VarVariant);
...
TabGrid[I,J] := FieldToVariant(dbGrid.Columns.Items[J].Field);

И пишем функцию:

function FieldToVariant(Field:TField):OLEVariant;
begin
Result := "";
case Field.DataType of
ftString, ftFixedChar, ftWideString, ftMemo,
ftFmtMemo: Result := """" + Field.AsString;
ftSmallint, ftInteger, ftWord, ftLargeint, ftAutoInc:
Result := Field.AsInteger;
ftFloat, ftCurrency, ftBCD: Result := Field.AsFloat;
ftBoolean: Result := Field.AsBoolean;
ftDate, ftTime, ftDateTime: Result := Field.AsDateTime;
end
end;

Все заработало.



Strannik_   (2002-03-31 09:04) [2]

Здраствуй ты не знаешь как програмно поменять формат ячеек после записи в них данных, и ты не мог бы скинуть мне свою прогу на мыло я сейчас как раз разбираюсь с Excel



KSergey   (2002-03-31 14:42) [3]

Друзья!
Зайдите просто на сайт "Королевство Delphi" и в разделе "Hello, World!" прочитайте статьи по связи с MS Excel. Там все очень подробно и очень много чего.




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




Наверх





Память: 0.72 MB
Время: 0.038 c
1-32809           AFROLOV               2002-04-01 11:17  2002.04.11  
Брэйкпоинт в DLL и глобальных Hook


14-32974          Nest                  2002-03-05 14:08  2002.04.11  
Юмор про программистов http://evny.com.ua/?hist/pmer00


1-32767           KvORubin              2002-03-31 06:27  2002.04.11  
Как корректно воспроизвести WAV файл (Без TMediaPlayer) ???


3-32641           ola                   2002-03-04 06:44  2002.04.11  
Help!!!! Помогите, уважаемые мастера....


4-33029           MCi                   2002-02-07 09:19  2002.04.11  
Как получить права на действия в W2k