Отчеты в Excel
Модераторы: m0p3e, edward_K, Модераторы
Отчеты в Excel
Добрый день!
Нужно в ячейке текст повернуть на 90 градусов - есть такая xl-функция?
Спасибо!
Нужно в ячейке текст повернуть на 90 градусов - есть такая xl-функция?
Спасибо!
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
ну в 810 он лежит в ...frm\galfrm.rar\inc\excel.inc.
в теории значения совпадают с справкой visual basic.
Все приводить много, вот кусочек :
// SetFontStyle
// Cell font style
xlBold = 1;
xlItalic = 2;
xlUnderline = 4;
// AlignCells, AlignCellsEx
// Cell value alignment
xlCenter = -4108;
xlLeft = -4131;
xlRight = -4152;
xlTop = -4160;
xlBottom = -4107;
xlFill = 5;
xlGeneral = 1;
// FrameCells
// Cell border styles
xlBorderL = 1;
xlBorderR = 2;
xlBorderT = 4;
xlBorderB = 8;
xlInsideH = 16;
xlInsideV = 32;
xlDiagonalD = 64;
xlDiagonalU = 128;
// нужные битики устанавливаются в порядке следования констант
xlEdgeLeft = 7;
xlEdgeRight = 10;
xlEdgeTop = 8;
xlEdgeBottom = 9;
xlInsideHorizontal = 12;
xlInsideVertical = 11;
xlDiagonalDown = 5;
xlDiagonalUp = 6;
// FrameCells
// line styles
xlContinuous = 1;
xlDash = -4115;
xlDashDot = 4;
xlDashDotDot = 5;
xlDot = -4118;
xlDouble = -4119;
xlSlantDashDot = 13;
xlLineStyleNone = -4142;
в теории значения совпадают с справкой visual basic.
Все приводить много, вот кусочек :
// SetFontStyle
// Cell font style
xlBold = 1;
xlItalic = 2;
xlUnderline = 4;
// AlignCells, AlignCellsEx
// Cell value alignment
xlCenter = -4108;
xlLeft = -4131;
xlRight = -4152;
xlTop = -4160;
xlBottom = -4107;
xlFill = 5;
xlGeneral = 1;
// FrameCells
// Cell border styles
xlBorderL = 1;
xlBorderR = 2;
xlBorderT = 4;
xlBorderB = 8;
xlInsideH = 16;
xlInsideV = 32;
xlDiagonalD = 64;
xlDiagonalU = 128;
// нужные битики устанавливаются в порядке следования констант
xlEdgeLeft = 7;
xlEdgeRight = 10;
xlEdgeTop = 8;
xlEdgeBottom = 9;
xlInsideHorizontal = 12;
xlInsideVertical = 11;
xlDiagonalDown = 5;
xlDiagonalUp = 6;
// FrameCells
// line styles
xlContinuous = 1;
xlDash = -4115;
xlDashDot = 4;
xlDashDotDot = 5;
xlDot = -4118;
xlDouble = -4119;
xlSlantDashDot = 13;
xlLineStyleNone = -4142;
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
1. Если формула стоит в шаблоне, то она прекрасно сработает (если тока формат ячейки правильный и включен автопересчет формул).
2. Надо, либо в Excel поставте в параметрах стиль ссылок "R1C1" и посмотрите как в этом случае можно записывать формулу - не пробовал правда никогда так задавать. Я сумму все больше ручками считаю, а не Excel, либ см пункт 1.
3. Поглядите макросы из файлов exe\xlt - там много чего интересного найдете.
2. Надо, либо в Excel поставте в параметрах стиль ссылок "R1C1" и посмотрите как в этом случае можно записывать формулу - не пробовал правда никогда так задавать. Я сумму все больше ручками считаю, а не Excel, либ см пункт 1.
3. Поглядите макросы из файлов exe\xlt - там много чего интересного найдете.
Спасибо ВСЕМ!!!
Буквенное представление столбца достаю из строки:
Alphabetic:=' A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ';
stolbez_name:=Trim(SubStr(Alphabetic, (stolbez-1)*3-2, 3)); //(спасибо Денису!)
Еще вопросы:
1. как вставить разрыв страницы?
2. как задать поля страницы: сверху, снизу, справа, слева?
3. для функции xlSetNumberFormat первым параметром в строке задается числовой формат шрифта. Что из себя должен/может представлять этот формат?
4. Вариантные массивы почему-то не работают...
Буквенное представление столбца достаю из строки:
Alphabetic:=' A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ';
stolbez_name:=Trim(SubStr(Alphabetic, (stolbez-1)*3-2, 3)); //(спасибо Денису!)
Еще вопросы:
1. как вставить разрыв страницы?
2. как задать поля страницы: сверху, снизу, справа, слева?
3. для функции xlSetNumberFormat первым параметром в строке задается числовой формат шрифта. Что из себя должен/может представлять этот формат?
4. Вариантные массивы почему-то не работают...
Я правильно понимаю последовательность действий:
1. создаю файл-шаблон xlt,
2. в нем создаю все макросы, которые мне понадобятся,
3. этот файл шаблон сохраняю в EXE\XLS\
4. в своей форме открываю этот файл-шаблон с помощью xlCreateFromTemplate
5. заполняю файл xls данными (это будет уже другой файл - не файл-шаблон???)
6. когда надо - выполняю макросы
Так?
И еще: Почему-то у меня не работает так:
name_f:='Pogr_List';
xlCreateExcelWithTemplate(name_f, True);
XlRes:=xlIsExcelValid;
Но зато работает так:
xlOpenNewExcel(true);
А Edward говорит, что наоборот вместо xlOpenNewExcel надо использовать xlCreateExcelWithTemplate???
(Версия 7.12)
1. создаю файл-шаблон xlt,
2. в нем создаю все макросы, которые мне понадобятся,
3. этот файл шаблон сохраняю в EXE\XLS\
4. в своей форме открываю этот файл-шаблон с помощью xlCreateFromTemplate
5. заполняю файл xls данными (это будет уже другой файл - не файл-шаблон???)
6. когда надо - выполняю макросы
Так?
И еще: Почему-то у меня не работает так:
name_f:='Pogr_List';
xlCreateExcelWithTemplate(name_f, True);
XlRes:=xlIsExcelValid;
Но зато работает так:
xlOpenNewExcel(true);
А Edward говорит, что наоборот вместо xlOpenNewExcel надо использовать xlCreateExcelWithTemplate???
(Версия 7.12)
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
в name_f нужно указывать полный путь.
я делаю так
#ifdef ATL51
if upcase(TranslatePath('%ClientRoot%') + '\OUT\'+UserName + '\')
<> upcase(GetStringParameter('Files','OutputFilesDirectory',0))
then kl3zvenka:=True ;
else kl3zvenka:=false ;
#ELSE
kl3zvenka:=false ;
#ENDIF
fbasname:=TranslatePath('%StartPath%XLS_ED\'+nmform)
if kl3zvenka
{ fbasname:=TranslatePath('%ClientRoot%\XLS_ED\'+nmform)
}
if fileexist(fbasname)
wPicture:=xlCreateExcelWithTemplate(fbasname,True) ;
else
wPicture:=xlCreateExcel(nmform,True) ;
папка другая чтобы не мешать галактические шаблоны с моими.
я делаю так
#ifdef ATL51
if upcase(TranslatePath('%ClientRoot%') + '\OUT\'+UserName + '\')
<> upcase(GetStringParameter('Files','OutputFilesDirectory',0))
then kl3zvenka:=True ;
else kl3zvenka:=false ;
#ELSE
kl3zvenka:=false ;
#ENDIF
fbasname:=TranslatePath('%StartPath%XLS_ED\'+nmform)
if kl3zvenka
{ fbasname:=TranslatePath('%ClientRoot%\XLS_ED\'+nmform)
}
if fileexist(fbasname)
wPicture:=xlCreateExcelWithTemplate(fbasname,True) ;
else
wPicture:=xlCreateExcel(nmform,True) ;
папка другая чтобы не мешать галактические шаблоны с моими.