Текущий архив: 2003.02.06;
Скачать: CL | DM;
ВнизРабота с 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;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.013 c