Текущее время: Сб, июл 12 2025, 05:29

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: форматирование ячеек в Excel програмным путем
СообщениеДобавлено: Пн, июл 17 2006, 09:26 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
Вопрос по выгрузке данных в шаблон Excel. Выгружаю таблицу с данными и нужно, чтобы некоторые ячейки из одного столбца были жирными, некоторые - обыкновенным шрифтом. Заранее угадать - какая ячейка должна быть BOLD, а какая нет - невозможно.
Как вообще задать программно ячейке (или строке) определенные свойства (шрифт, цвет, размер)?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: форматирование ячеек в Excel програмным путем
СообщениеДобавлено: Пн, июл 17 2006, 10:14 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
AnnaEremenko написала:
Как вообще задать программно ячейке (или строке) определенные свойства (шрифт, цвет, размер)?

Вам наверно лучше заглянуть сюда, сюда и сюда :D
Удачи!

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 11:20 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
Спасибо, конечно, Bully, но то, что я там увидела никак не связано с ABAPом :( И мне стало обидно, т.к. я писала вроде бы абаперам, соответственно и помощь мне нужна с АБАПом, а не с майкрософтом :(
А теперь расшифровываю свой вопрос, если с первого раза было что-то не понятно:
когда я делаю в программе
Code:
  CALL METHOD rfc_excel->rfi_sheet->insert_range_dim
    EXPORTING
      name    = 'Текущая'
      top     = 23
      left    = 1
      rows    = n_rows
      columns = n_cols.

  CALL METHOD rfc_excel->rfi_sheet->insert_one_table
    EXPORTING
      rangename    = 'Текущая'
      data_table   = itab[]
      fields_table = t_fields
      no_flush     = 'X'
      wholetable   = 'X'.

какой ФМ использовать для того, чтобы можно было в шаблоне документа BDS форматировать ячейки.
Есть отчет: "Штатное расписание", у него есть столбец "Структруное подразделение -> "Наименование". Так вот, некоторые наименования (цех или отдел) должны быть жирным шрифтом, некоторые (группа или склад) обычным шрифтом и все это в одном столбце.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 11:24 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Вам надо не ФМ а ОЛЕ использовать а это какраз на MSDN :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 11:34 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
т.е., если я заполняю шаблон при помощи DOI - этого никак не добиться?
ну вот, а я по-другому не умею пока... и рассказать некому...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 11:39 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 08 2005, 09:49
Сообщения: 102
Откуда: Тундра
Если использовать ОЛЕ2, то можно так сделать:
Code:
....
*////////Заголовки столбцов

      call method  of wsheet 'Cells' = cell
                              exporting #1 = 1 #2 = 1.
      set property of cell 'Numberformat'  = '@'.
      set property of cell 'Value' = '№ ОС'.
      perform font using 1 '11'. "<<< отсюда вызов про шрифт
      free object cell.
......

form font using bold size.
call method  of cell 'FONT' = font.
set property of font 'BOLD' = bold.
set property of font 'SIZE' = size.
free object font.
endform.
....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: re
СообщениеДобавлено: Пн, июл 17 2006, 11:49 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
Можно вы-DOI-ть ole2 из oi_document:
Code:
type-pools: ole2, cntl.
data:
  h_xl type ole2_object,  " Excel.Application
  h_as type ole2_object, " .ActiveSheet
  h_sel type ole2_object, " .Selection
  h_cells type ole2_object, " .Cells
  h_t type ole2_object. " junk

data handle type cntl_handle.
call method i_document->get_document_handle
  importing handle = handle.
h_t = handle-obj.
get property of h_t 'Application' = h_xl.

" Excel.Application.ActiveSheet
get property of h_xl 'ActiveSheet' = h_as no flush.

call method of h_as 'Cells' = h_cells. " no flush.
%xl_error sheet-cells.

.....
cl_gui_cfw=>flush( ).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 11:55 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
про OLE мне бесполезно говорить - я все равно ничего не понимаю.
Нашла программку, которую сделал приезжий программист, вроде все понятно (в смысле что и где изменить, чтобы использовать для себя)(используется OLE), но есть один вопрос: там обязательно, чтобы файл xls существовал на HDD, или его можно самой создавать?
В программе используется жесткий путь к уже существующему файлу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 12:01 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 08 2005, 09:49
Сообщения: 102
Откуда: Тундра
AnnaEremenko написала:
...но есть один вопрос: там обязательно, чтобы файл xls существовал на HDD, или его можно самой создавать?

"Там", - это где? Если в ОЛЕ, то не обязательно. Файл создается самим Экселем или открывается уже существующий. Смотря какой метод Экселя использовать. :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 12:10 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Также можно сделать макросик на VB и из DOI его вызвать используя
метод - execute_macro


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 12:45 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
методы SET_FORMAT & SET_FORMAT_STRING & SET_RANGES_FORMAT.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 13:40 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
А может, лучше шаблон в BDS сохранить и не мучиться с форматированием вручную?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 17 2006, 13:44 
Гость
Еще вариант: 1. Создать стили в шаблоне
2. Применить метод SET_STYLE


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 18 2006, 05:17 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
Буду пробовать как trop выше сказал: объединять DOI и OLE...


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB