Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2013, 11:16   #1
sniip
Пользователь
 
Регистрация: 27.05.2012
Сообщений: 22
По умолчанию Не получается отворматировать формат ячеек в EXEL

Код:
   Sheet.Range['E'+'4'+':'+'J' + inttostr(j)].NumberFormat:='0.00';
такаа строчка... на всех сайтах написано что нужно так форматировать но у меня выдает ошибку типа: нельзя установить ствоство NumberFormat класса Range. Что я не атк делаю?
sniip вне форума Ответить с цитированием
Старый 12.05.2013, 16:43   #2
sniip
Пользователь
 
Регистрация: 27.05.2012
Сообщений: 22
По умолчанию пробовал через selection

пробовал через selection... то же самое ыдает...
sniip вне форума Ответить с цитированием
Старый 12.05.2013, 16:53   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Что я не атк делаю?
Range не так задаешь

Код:
Sheet.Range['E4','J'+inttostr(j)].NumberFormat:='0.00';
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.05.2013, 17:56   #4
sniip
Пользователь
 
Регистрация: 27.05.2012
Сообщений: 22
По умолчанию

выдает то же самое сообщение.... "нельзя установить свойство Number format класса Range"
sniip вне форума Ответить с цитированием
Старый 12.05.2013, 18:10   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
Sheet.Range['E4','J'+inttostr(j)].Select;
Sheet.Selection.NumberFormat:='0.00';
А так?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 15.05.2013, 16:35   #6
sniip
Пользователь
 
Регистрация: 27.05.2012
Сообщений: 22
По умолчанию

Metod 'Selection' not supported by automation object --- выдает такую ошибку
sniip вне форума Ответить с цитированием
Старый 15.05.2013, 21:00   #7
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Приведите весь код, как Вы Sheet задаете и тп.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 16.05.2013, 05:20   #8
sniip
Пользователь
 
Регистрация: 27.05.2012
Сообщений: 22
По умолчанию

Код:
procedure TForm1.N16Click(Sender: TObject);
var
    k:string;
    i,j,j1,L1,m,kolarr,kolarr1:integer;
    al,kol,kol1,kol3,lo1,lo2,kolsuh,L8:real;
    f:textfile;   arr,arr1:array[1..20] of integer;
begin
    kolarr:=0;  kolarr1:=0;
    XL := CreateOleObject('Excel.Application');  //создаем Excel
    XL.Application.EnableEvents := false;  // Отключаем реакцию Excel на события (для ускорения)
    XL.WorkBooks.Add;   //  Добавляем книгу
    XL.Rows.Rows[2].Font.Bold:=true; //жирный шрифт
    XL.Rows.Rows[2].Font.Size:=10; //размер шрифта
    XL.Cells[1,1]:= 'Наименование профиля ГОСТ, ТУ';//делаем шапку таблицы
    XL.Cells[1,2]:='Наименование или марка металла ГОСТ, ТУ';
    XL.Cells[1,3]:='Номер или размеры профиля, мм';
    XL.Cells[1,4]:='№ п.п.';
    XL.Cells[1,5]:='Масса металла по элементам конструкции';
    XL.Cells[1,11]:='Общая масса, т';
    XL.Cells[2,5]:='Колонны';
    XL.Cells[2,6]:='Ригели';
    XL.Cells[2,7]:='Прогоны покрытия';
    XL.Cells[2,8]:='Прогоны ограждающие';
    XL.Cells[2,9]:='Колонны фахверка';
    XL.Cells[2,10]:='Связи';
    sheet:=XL.WorkBooks[1].WorkSheets[1];
    sheet.Range['A1:K1000'].WrapText:=true;
    sheet.Range['A1:K1000'].HorizontalAlignment := 3;
    sheet.Range['A1:K1000'].VerticalAlignment := 2;
    sheet.Range['A1:K1000'].Font.Size:=10;
    sheet.Range['A1:K2'].Font.Bold:=true;
    sheet.Range['A1:A2'].Merge;
    sheet.Range['B1:B2'].Merge;
    sheet.Range['C1:C2'].Merge;
    sheet.Range['D1:D2'].Merge;
    sheet.Range['E1:J1'].Merge;
    sheet.Range['K1:K2'].Merge;
    XL.Rows.Rows[1].rowheight:=38;
    XL.Rows.Rows[2].rowheight:=38;
    XL.Rows.Rows[3].rowheight:=10;
    XL.Rows.Rows[4].rowheight:=20;
    XL.Columns.Columns[1].ColumnWidth:=15;//устанавливаем ширину столбцов
    XL.Columns.Columns[2].ColumnWidth:=15;
    XL.Columns.Columns[3].ColumnWidth:=15;
    XL.Columns.Columns[4].ColumnWidth:=5;//устанавливаем ширину столбцов
    XL.Columns.Columns[5].ColumnWidth:=8;
    XL.Columns.Columns[6].ColumnWidth:=8;
    XL.Columns.Columns[7].ColumnWidth:=8;//устанавливаем ширину столбцов
    XL.Columns.Columns[8].ColumnWidth:=8;
    XL.Columns.Columns[9].ColumnWidth:=8;
    XL.Columns.Columns[10].ColumnWidth:=8;
    XL.Columns.Columns[11].ColumnWidth:=12;
    kolsuh:=0; L8:=0;
    for m := 0 to strtoint(edit56.Text)-1 do
    begin
    Kolsuh:=kolsuh+(strtoint(stringgrid1.cells[1,m]) div strtoint(edit6.Text));
    L8:=L8+strtoint(stringgrid1.cells[1,m]);
    end;
    Kolsuh:=Kolsuh + ((strtoint(edit3.text)-L8-Strtoint(edit9.text)-strtoint(edit26.text))/ strtoint(edit6.Text)) +1;
    XL.cells[4,1]:=combobox28.text;

    //профили
    j:=4;  j1:=4;   l1:=4;
    for i := 0 to combobox21.Items.Count-1 do
    begin
      ----------

    for m := 1 to 11 do
   XL.cells[3,m]:=m;
   j:=j+1;
   XL.cells[j,1]:='Итого профиля:';

   for i := 5 to 10 do
   begin
   kol:=0;
   For m:= 1 to kolarr do
   kol:=kol+ XL.cells[arr[m],i].value ;
   XL.cells[j,i]:=kol;
   end;
   sheet.range['A'+inttostr(j)+':'+'C' + inttostr(j)].Merge;
   j:=j+1;
   XL.cells[j,1]:='Итого металла:';
   for i := 5 to 10 do
   begin
   kol:=0;
   For m:= 1 to kolarr1 do
   kol:=kol+ XL.cells[arr1[m],i].value ;
   XL.cells[j,i]:=kol;
   end;
   sheet.range['A'+inttostr(j)+':'+'C' + inttostr(j)].Merge;
   for m := 4 to j do
   begin
    XL.cells[m,4]:=m-3;
    XL.cells[m,11].formulalocal:='=СУММ('+'E'+inttostr(m)+':'+'J' + inttostr(m)+')';
   end;
   //Sheet.Range['E4','J'+inttostr(j)].NumberFormat:='0.00';
   // Sheet.Range['E'+'4'+':'+'J' + inttostr(j)].NumberFormat:='0.00';
   
   XL.Visible := true;


end;
sniip вне форума Ответить с цитированием
Старый 16.05.2013, 06:25   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
XL.Range['E4','J'+inttostr(j)].Select;
XL.Selection.NumberFormat:='0.00';
вроде бы так должно быть. Поэкспериментировать возможности нет и старых кодов под рукой, как назло, тоже...
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 16.05.2013, 13:18   #10
sniip
Пользователь
 
Регистрация: 27.05.2012
Сообщений: 22
По умолчанию

ну вот так в интеренете везде и аписоно, а не работает... может еще кто знает варианты?
sniip вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
формат ячеек moroz11 PHP 6 21.10.2011 23:12
формат ячеек moroz11 Microsoft Office Excel 2 21.10.2011 13:12
Форматирование ячеек в Exel средствами Delphi 7 Mutagena Помощь студентам 2 29.04.2010 12:40
Выделение ячеек в Exel 2003. Срочно! Fanta Microsoft Office Excel 22 15.03.2010 15:54
формат ячеек VS. ВПР Exo Microsoft Office Excel 11 29.04.2009 13:43