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

Вниз

Экспорт из DataSet в Excel   Найти похожие ветки 

 
Vick   (2003-12-31 11:44) [0]

Доброго всем дня и с наступающим НГ!!!

Может кто еще на начал праздновать ответит на вопрос такого плана: переношу данные из ДатаСета в Эксель с помощью потоков, переноситься вроде, корявенько конечно, но доработаем, теперь нужно с помощью этих же потоков задать формат ячейки (размещение в ней текста по центру, с переносом на по словам и т.п.), ее цвет и контур. У мну не получется :((( Где можно почитать как это наколдовать???

Заранее спасибки :)


 
Vlad   (2003-12-31 11:52) [1]

Лист Excel - это COM объект. Вот и работай с ним как с COM-объектом и не мучайся.


 
Vick   (2003-12-31 11:58) [2]


> Vlad


А мне нада через поток!!!!!


 
_T1000_   (2003-12-31 12:37) [3]

Привет. С наступающим НГ.
Вот как я делаю ета.

//Создаьот ОЛЕ обект
function DInitObjNew(pFileName: pChar): boolean; cdecl;
begin
try
ExcelApp := CreateOLEObject("Excel.Application");
except
raise Exception.Create("Нету Excel");
Result := False;
Exit;
end;
ExcelApp.Visible := True;
ExcelApp.WorkBooks.Add.SaveAs(string(pFileName));
Result := True;
end;

//Видим или нет
procedure BVisible(flag: Boolean); cdecl;
begin
ExcelApp.Visible := flag;
end;

procedure DSetColumWidth(i: Integer; WidthCol: Double); cdecl;
begin
ExcelApp.WorkBooks[1].ActiveSheet.Columns[i].ColumnWidth := WidthCol;
end;

//Форматирует текст

procedure DSetFormatedString(I, J: LongInt; pVal: PChar; CellJustify, FontSize: Integer; FontStyle: TFontStyles; FontName: PChar); cdecl;
begin
ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].Font.Name := String(FontName);
ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].Font.Size := FontSize;
if (fsBold in FontStyle) then
ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].Font.Bold := True;
if (fsItalic in FontStyle) then
ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].Font.Italic := True;
if (fsUnderline in FontStyle) then
ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].Font.Underline := True;
if (fsStrikeOut in FontStyle) then
ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].Font.fsStrikeOut := True;

if CellJustify <> cjNoSetJustify then
case CellJustify of
cjLeft: ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].HorizontalAlignment := xlHAlignLeft;
cjRight: ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].HorizontalAlignment := xlHAlignRight;
cjCenter: ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].HorizontalAlignment := xlHAlignCenter;
cjJustify: ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J].HorizontalAlignment := xlHAlignJustify;
end;

ExcelApp.WorkBooks[1].ActiveSheet.Cells[I, J] := string(pVal);
end;

procedure DSetBorders(I,J: PChar; LineStyleB, WeightB: Integer); cdecl;
var K1, K2:String;
begin
K1:=string(I);
K2:=string(J);
case LineStyleB of
0:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.LineStyle := xlLineStyleNone;
1:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.LineStyle := xlContinuous;
2:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.LineStyle := xlDash;
3:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.LineStyle := xlDashDot;
4:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.LineStyle := xlDashDotDot;
5:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.LineStyle := xlDot;
6:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.LineStyle := xlDouble;
7:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.LineStyle := xlSlantDashDot;
end;

case WeightB of
1:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.Weight := xlHairline;
2:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.Weight := xlThin;
3:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.Weight := xlThick;
4:ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Borders.Weight := xlMedium;
end;
end;

procedure DSetColorToRange(I,J:PChar;Color:TColor);cdecl;
var K1, K2:String;
begin
K1:=string(I);
K2:=string(J);
ExcelApp.WorkBooks[1].ActiveSheet.Range[K1,K2].Interior.Color:=Color;
end;

Надеюс смог памочь
Пример:

SetColumWidth(3,13.57);
SetFormatedString(4,4, PChar("A1"),0 ,10,[fsBold],PChar,"Arial"));
SetColorToRange(PChar("A1"), PChar("A2"), clRed);
SetBorders(PChar("A1"), PChar("A2"),1,2);

Даполнителнъе фунцъи можеш написат сматря хелп Visual Basic Editor в Eksele


 
Vick   (2003-12-31 12:41) [4]

ЛЮДИ!!!! Вы читать умеете??? В том что писать умеете я не сомневаюсь!!!! Поток нужно организовать!!! Какае биты и что в них писать???? Через ОЛЕ я тоже умею!!! :)


 
Соловьев   (2003-12-31 13:02) [5]

http://www.delphikingdom.com/helloworld/excelsm.htm
и все статьи со словом Excel


 
jack128   (2004-01-01 11:43) [6]


> ЛЮДИ!!!! Вы читать умеете??? В том что писать умеете я не
> сомневаюсь!!!! Поток нужно организовать!!!

И в чем проблема? Копируй код в TExcelThread.Execute вот те и поток...


 
KSergey   (2004-01-03 10:56) [7]

Автору: о каких потоках речь? Уточните. А то общественность, похоже,путается...
Может, Stream имеется в виду? А это вообще как?



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

Форум: "Базы";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
3-93387
alextov
2003-12-29 15:28
2004.01.29
При вводе ключевого поля не отображаются некоторые лукапные поля


1-93504
Кен
2004-01-16 02:34
2004.01.29
Чем лучше запаковать программу, чтобы враги не распаковали ?


7-93724
T-Coder
2003-11-13 02:36
2004.01.29
Shell Extension bug


3-93405
dtm
2003-12-29 18:56
2004.01.29
хранение данных в виде XML в СУБД FireBird


3-93383
Silver_
2003-12-30 16:20
2004.01.29
Post После Insert запись убегает в конец. Как на месте оставить





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский