Member 10189439 Ответов: 1

как установить цвет фона Excel и сгруппировать некоторые строки в Excel


У меня есть два вопроса, надеюсь, вы сможете мне помочь, большое вам спасибо!

1)Например, я получил диапазон
range = sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("A1"+intToCString2)));
, как я могу установить цвет фона ячейки A1?

2)
range = sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("A5")));
, Я хочу сгруппировать строку A1 в A2, я знаю, что класс CRange имеет группу методов(parameter1,parameter2,parameter3, parameter4), но я не знаю, как ее вызвать.

Jochen Arndt

Что касается вашего первого вопроса, Вы можете попробовать это:
Интерьер = диапазон.GetInterior();
Интерьер.SetColor(COleVariant(lColor));
Параметр SetColor () имеет тип long. Поэтому передайте длинную переменную или константу с типом (например, SetColor(COleVariant(0x808080), VT_I4)).
Я не уверен, что это работает (не проверено), поэтому я опубликовал его как комментарий, а не как решение.

Группа() прототип функции:
Ассортимент варианте::группа(константный вариант&амп; старт, вариант с const&амп; конец, вариант с const&амп; стороны, константный вариант&амп; периоды);

1 Ответов

Рейтинг:
0

mila wilson

установить цвет bg:

	CApplication app;
	CWorkbooks books;
    CWorkbook book;
    CWorksheets sheets;
	CWorksheet sheet;
	CRange range;
	CInterior interior;

......

		// Commonly used OLE variants.
	COleVariant  covTrue((short)TRUE),  covFalse((short)FALSE),  covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);	
	// Start Excel and get an Application object.
	if(!app.CreateDispatch(TEXT("Excel.Application"))) {
		AfxMessageBox(TEXT("Couldn't start Excel and get Application object.\nPlease (re)install MS Excel.",MB_OK|MB_ICONSTOP));
		return;
	}

books = app.get_Workbooks();  // Get an IDispatch pointer.

if(m_bFromFile)
    book = books.Open(m_strFile, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional,covOptional,covOptional );   // Return Workbook's IDispatch pointer.
else
    book = books.Add (covOptional);// Open a new workbook and attach that IDispatch pointer to the Workbook object.

sheets =book.get_Sheets();   //CWorksheets get a pointer to CWorksheets pools
sheet = sheets.get_Item(COleVariant((short)1));   //CWorksheet get 1st sheet from the pool
//upto here is all regular excel instance. Now the bg colour
range = sheet.get_Range(COleVariant(TEXT("A1")), COleVariant(TEXT("G1")));
interior=range.get_Interior();
interior.put_ColorIndex(COleVariant((short)36)); //color by index
interior.put_Color(COleVariant(long(RGB(0xFF,0xC4,0xC4))));  //colour by RGB


вот как это сделать:
range = sheet.get_Range(COleVariant(TEXT("A1")),COleVariant(TEXT("G1")));
range.Merge(covOptional);  //merge A1 - G1


Member 11099444

что такое Цинтериор класс? и как вызвать его в приложении MFC