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

Вниз

Работа с Excel`em   Найти похожие ветки 

 
pave1   (2003-01-15 13:53) [0]

Хотел спросить, можно ли с помощью Дельфи начертить рамку вокруг ячейки в книге Excel, а так же, поменять тип ячейки?
За ранее спасибо


 
Кулюкин Олег   (2003-01-15 15:32) [1]

У ячейки есть свойство Border, дальше не помню, экспериментировать надо.
Подробности есть в хелпе по VBA


 
Blondin   (2003-01-15 15:40) [2]

V:Variant;
//
V.Cells[1,1].BorderAround(1);
V.Cells[1,1].NumberFormat:={константа формата}


 
TTCustomDelphiMaster   (2003-01-15 17:34) [3]

procedure SetEdge(Range: OleVariant);
begin
Range.Borders[xlEdgeLeft].LineStyle := xlContinuous;
Range.Borders[xlEdgeLeft].Weight := xlMedium;
Range.Borders[xlEdgeTop].LineStyle := xlContinuous;
Range.Borders[xlEdgeTop].Weight := xlMedium;
Range.Borders[xlEdgeBottom].LineStyle := xlContinuous;
Range.Borders[xlEdgeBottom].Weight := xlMedium;
Range.Borders[xlEdgeRight].LineStyle := xlContinuous;
Range.Borders[xlEdgeRight].Weight := xlMedium;
if Range.Columns.Count > 1 then
begin
Range.Borders[xlInsideVertical].LineStyle := xlContinuous;
Range.Borders[xlInsideVertical].Weight := xlThin;
end;
if Range.Rows.Count > 1 then
begin
Range.Borders[xlInsideHorizontal].LineStyle := xlContinuous;
Range.Borders[xlInsideHorizontal].Weight := xlThin;
end;
end;



Range.NumberFormat := "#"+ThousandSeparator+"##0"+DecimalSeparator+"00";
Range.NumberFormat := "@";


 
gsu   (2003-01-15 17:49) [4]

>> TTCustomDelphiMaster ©
спец по Excel+D - похоже починил NumberFormat ? (-:|~


 
TTCustomDelphiMaster   (2003-01-15 18:06) [5]


> gsu © (15.01.03 17:49)


Осталось только с датой разобраться.
Кстати формат даты для русского Excel
Range.NumberFormat := "ДД"+DateSeparator+"ММ"+DateSeparator+"ГГГГ";


 
gsu   (2003-01-15 18:10) [6]

>> TTCustomDelphiMaster ©
А где нашел ?


 
TTCustomDelphiMaster   (2003-01-15 18:16) [7]

Что нашел?


 
gsu   (2003-01-15 18:19) [8]

инфу по NumberFormat


 
Ketmar   (2003-01-15 18:29) [9]

>gsu © (15.01.03 18:19)
хэлп читать надо. и мозги при этом включать. если лень - посмотреть непосредственно в excel.

Satanas Nobiscum! 15-Jan-XXXVIII A.S.


 
TTCustomDelphiMaster   (2003-01-15 18:39) [10]

А мне "наколочку" здесь дали.


 
gsu   (2003-01-15 19:16) [11]

>> Ketmar ©
на почитай, раз такой умный
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1042478097&n=0


 
TTCustomDelphiMaster   (2003-01-15 19:22) [12]

И еще вопрос по этой проблеме
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1042565963&n=0


 
Ketmar   (2003-01-15 20:00) [13]

>gsu © (15.01.03 19:16)
такой умный, почитал. у меня на решение аналогичной проблемы ушло минут 10. из них 5 я матюкался, поняв, в чем дело. вопрос: нафига разводить немеряный трёп, если можно просто ПОДУМАТЬ?

Satanas Nobiscum! 15-Jan-XXXVIII A.S.


 
gsu   (2003-01-15 20:09) [14]

>> Ketmar ©
ты, наверное, очень гордый и высокомерный, но мне твои нападки ||


 
Ketmar   (2003-01-15 20:11) [15]

>gsu © (15.01.03 20:09)
нападать? на вас? благородный дон не страдает мегаломанией?

Satanas Nobiscum! 15-Jan-XXXVIII A.S.


 
gsu   (2003-01-15 20:18) [16]

ха-ха


 
TTCustomDelphiMaster   (2003-01-15 20:22) [17]


> Ketmar © (15.01.03 20:00)
> >gsu © (15.01.03 19:16)
> такой умный, почитал. у меня на решение аналогичной проблемы
> ушло минут 10. из них 5 я матюкался

Не все же такие умные :)


 
Ketmar   (2003-01-15 20:29) [18]

>TTCustomDelphiMaster © (15.01.03 20:22)
или догадливые. а все потому, что лень думать, легче в форуме спросить %-(

Satanas Nobiscum! 15-Jan-XXXVIII A.S.


 
TTCustomDelphiMaster   (2003-01-15 20:32) [19]

Эт точно


 
pave1   (2003-01-16 08:59) [20]

Я как понял Дельфи использует функции VBA.
Хотелось бы узнать более расширено про типы ячейки, .т.е. я как понял символ "@" означает Текстовый формат, а как обозначаются другие форматы Числовой, Дата и т.д.?








 
pave1   (2003-01-16 13:09) [21]

У меня опрос по поводу "
Range.NumberFormat := "#"+ThousandSeparator+"##0"+DecimalSeparator+"00";

У меня почему-то не полная разрядность, т.е. если ввожу сумму до миллиона то нормально, отображается вот так 234 456 , но больше миллиона эта ячейка отображает сумму вот так 1234 456.
Если сможите то объясните почему так происходит?


 
Ketmar   (2003-01-16 13:51) [22]

а что тут объяснять? мне щаз лень смотреть, на "на вскидку" - как написано, так и делаем...

Satanas Nobiscum! 16-Jan-XXXVIII A.S.


 
TTCustomDelphiMaster   (2003-01-16 15:42) [23]


> pave1 © (16.01.03 13:09)
> У меня опрос по поводу "
> Range.NumberFormat := "#"+ThousandSeparator+"##0"+DecimalSeparator+"00";


Range.NumberFormat := "###"+ThousandSeparator+"###"+ThousandSeparator+"##0"+DecimalSeparator+"00";


 
pave1   (2003-01-19 00:41) [24]

Спасибо за помощь, вроде потихоньку разаобрался. Осталось только одно, хотел в Книге Excelя ввести формулу, формулу в ячейку ввожу, но после ввода она не работает, пишет ИМЯ, если же нажмешь F2 и нажмешь Enter то формула работает. Ни кто не сталкивался с формулами в Excel? Может кто знает как ввести формулу в Excel.


 
Романов Р.В.   (2003-01-19 10:41) [25]

Ты хоть бы написал как делаешь.


 
pave1   (2003-01-19 12:09) [26]

to Романов Р.В.

Это отрывок из программы

try
ExcelApplication:=CreateOleObject ("Excel.Application");
ExcelApplication.visible:=false;
ExcelApplication.Workbooks.Add(-4167);
ExcelApplication.Workbooks[1].WorkSheets[1].Name:="Отчёт";
ExcelApplication.Columns[1].WrapText := True;
ExcelApplication.Columns[1].ColumnWidth := 40;
ExcelApplication.Columns[2].ColumnWidth:=18;
ExcelApplication.Columns[3].ColumnWidth:=12;
ExcelApplication.Columns[4].ColumnWidth:=12;
ExcelApplication.Columns[5].ColumnWidth:=12;
// for i:=1 to Table1.RecordCount do
while not Table1.Eof do
begin
ExcelApplication.Cells[Table1.RecNo,1].value := Table1.FieldByName("g2").AsString;
ExcelApplication.Cells[Table1.RecNo,1].BorderAround(1,2);

ExcelApplication.Cells[Table1.RecNo,2].NumberFormat := "0";
ExcelApplication.Cells[Table1.RecNo,2].value := Table1.FieldByName("g3").AsString;
ExcelApplication.Cells[Table1.RecNo,2].BorderAround(1,2);

ExcelApplication.Cells[Table1.RecNo,3].NumberFormat := "# ##0"+DecimalSeparator+"00;[Красный]-# ##0"+DecimalSeparator+"00";
ExcelApplication.Cells[Table1.RecNo,3].value := Table1.FieldByName("g4").AsInteger/1000;
ExcelApplication.Cells[Table1.RecNo,3].BorderAround(1,2);

ExcelApplication.Cells[Table1.RecNo,4].NumberFormat := "# ##0"+DecimalSeparator+"00;[Красный]-# ##0"+DecimalSeparator+"00";
ExcelApplication.Cells[Table1.RecNo,4].value := Table1.FieldByName("g5a").AsInteger/1000;
ExcelApplication.Cells[Table1.RecNo,4].BorderAround(1,2);

ExcelApplication.Cells[Table1.RecNo,5].NumberFormat := "# ##0"+DecimalSeparator+"00;[Красный]-# ##0"+DecimalSeparator+"00";
ExcelApplication.Cells[Table1.RecNo,5].value := "=C"+IntToStr(Table1.RecNo)+"/6";
ExcelApplication.Cells[Table1.RecNo,5].BorderAround(1,2);
Table1.Next;
end
finally

//ExcelApplication.Cells[Table1.RecordCount+1,3].NumberFormat := "# ##0"+DecimalSeparator+"00;[Красный]-# ##0"+DecimalSeparator+"00";
ExcelApplication.Cells[Table1.RecordCount+1,3].Formula := "=СУММ(C1:C10)";
ExcelApplication.Cells[Table1.RecordCount+1,3].BorderAround(1,2);


ExcelApplication.visible:=true;
ExcelApplication.Quit;


в этой строке я указал формулу статически для проверки ExcelApplication.Cells[Table1.RecordCount+1,3].Formula := "=СУММ(C1:C10)";
в программе у меня формула будет формироватся динамически. Вот эта формула у меня в Excelе выводит в ячейке #ИМЯ? , хотя если потом нажать клавишу F2 то она показывает диапазон выбранных значений, а если еще подтвердить клавишей Enter то формула вычисляется. Может нужно в программе как-нибудь формулу обновлять или вычислять?


 
Романов Р.В.   (2003-01-19 12:21) [27]

ExcelApplication.Cells[Table1.RecordCount+1,3].Formula := "=SUM(C1:C10)";


 
pave1   (2003-01-19 13:03) [28]

to Романов Р.В.
Спасибо.
Я не можешь еще сказать почему когда в формате ячейки задаю цвет ячейки английскими словами то вываливается ошибка "Нельзя установить свойство NumberFormat класса Range" приходится писать русскими словами

ExcelApplication.Cells[Table1.RecNo,5].NumberFormat := "# ##0"+DecimalSeparator+"00;[Красный]-# ##0"+DecimalSeparator+"00";

хотя в VBA Excel пишется английскими словами, т.е. RED.


 
Романов Р.В.   (2003-01-19 13:08) [29]

Потому что нет такого формата в Excel. А из VBA он как то конвертит. Вобщем там полный бардак.


 
Ketmar   (2003-01-19 13:21) [30]

>Романов Р.В. © (19.01.03 13:08)
вообще, насколько я заметил, в OLE-криках к Excel все задается на английском. конверсия типа "СУММ" ==> "SUM" происходит где-то на пути от вывода к движку VBA. в принципе - удобно, но ни разу не очевидно %-(

Satanas Nobiscum! 19-Jan-XXXVIII A.S.



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

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

Наверх





Память: 0.52 MB
Время: 0.01 c
14-15854
Феликс
2003-01-18 19:42
2003.02.06
Какая самая крутая баннерная система в РФ?


14-15889
Calm
2003-01-20 12:42
2003.02.06
Удобный TaskBar. Где же он?


9-15388
Delphi 5.01
2002-08-19 21:01
2003.02.06
Information About Game Designe (infa po sozdaniu igr kak obichni)


4-15978
Ewgenij85
2002-12-22 19:16
2003.02.06
Свойства файла


1-15659
Alex G
2003-01-29 16:51
2003.02.06
Клиентская область





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