Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
OverDozero
99 / 99 / 6
Регистрация: 07.04.2011
Сообщений: 523
#1

Выделение диапазона в Excel - C++

26.11.2014, 17:20. Просмотров 224. Ответов 0
Метки нет (Все метки)

Всем доброго времени суток.
Есть программа,которая копирует данные с 1 книги экселя в другую,с определенными параметрами,форматом,проверкой и тд.
Столкнулся с проблемой форматирования ячеек(и именно установкой границ ячеек) в скопированной книге.
Форматирую верхнюю строку листа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void Style_Header (Excel::_WorksheetPtr NewSheet)
{
        NewSheet->Range["A1"]->RowHeight = 53;//высота верхней строки 
        NewSheet->Range["A1"]["L1"]->Font->Name = "Arial Cyr";//шрифт
        NewSheet->Range["A1"]["L1"]->Font->Size = 10;//размер шрифта
        NewSheet->Range["A1"]["L1"]->WrapText = true;//перенос по словам
        NewSheet->Range["A1"]->ColumnWidth = 5.5;
        NewSheet->Range["B1"]->ColumnWidth = 14.45;
        NewSheet->Range["C1"]->ColumnWidth = 8.5;
        NewSheet->Range["D1"]->ColumnWidth = 21.7;
        NewSheet->Range["E1"]->ColumnWidth = 8.5;
        NewSheet->Range["F1"]->ColumnWidth = 7.3;
        NewSheet->Range["G1"]->ColumnWidth = 17.15;
        NewSheet->Range["H1"]->ColumnWidth = 11.5;
        NewSheet->Range["I1"]->ColumnWidth = 16.7;
        NewSheet->Range["J1"]->ColumnWidth = 13,6;
        NewSheet->Range["K1"]->ColumnWidth = 14;
        NewSheet->Range["L1"]->ColumnWidth = 9;
        NewSheet->Range["A1"]["L1"]->VerticalAlignment = Excel::xlCenter;
        NewSheet->Range["A1"]["L1"]->HorizontalAlignment = Excel::xlCenter;
        NewSheet->Range["A1"]["L1"]->Font->Bold = true;
        NewSheet->Range["A1"]["L1"]->Borders->Item[xlEdgeTop]->LineStyle = xlContinuous; //верх
        NewSheet->Range["A1"]["L1"]->Borders->Item[xlEdgeBottom]->LineStyle = xlContinuous;//низ
        NewSheet->Range["A1"]["L1"]->Borders->Item[xlInsideVertical]->LineStyle = xlContinuous;//вертикальные
        NewSheet->Range["A1"]->Borders->Item[xlEdgeLeft]->LineStyle = xlContinuous;//закрывающая слева
        NewSheet->Range["L1"]->Borders->Item[xlEdgeRight]->LineStyle = xlContinuous;// закрывающая справа
 
}
Это заголовок.Ниже располагаются ячейки с данными.И количество строк с данными-неизвестно.Известно только количество столбцов-их всегда 12.
Пробовал использовать присваивание формата каждой ячейки,пока идет обработка данных с листа-сработало,но время выполнения задачи заметно увеличивается.Не вариант.
Вот код поиска максимально заполненного столбца в каждой строке.
C++
1
2
3
4
5
6
int NonEmptyRow( Excel::_WorksheetPtr Sheet, int Col )//поиск непустых строк
{
    Excel::RangePtr NonEmptyRow;
    NonEmptyRow = Sheet->Cells->Item[Sheet->Rows->Count][Col];
    return NonEmptyRow->GetEnd(Excel::xlUp)->Row;
}
Вызов
C++
1
2
for (i = 1;i<=12;i++)//12 столбцов
   if (NonEmptyRow(pSheet,i) > MaxCountNonEmpty) {MaxCountNonEmpty = NonEmptyRow(pSheet,i);}//поиск максимального количества непустых столбцов по строке.MaxCountNonEmpty тип int для дальнейшей обработки.
MaxCountNonEmpty содержит максимальное НЕПУСТОЕ количество строк в каждой строке
Подскажите каким образом выделить диапазон ячеек,который располагается начиная с ячейки А2,до L(MaxCountNonEmpty),чтобы применить форматирование разом к всему диапазону.
Спасибо

Добавлено через 9 часов 20 минут
UP UP

Добавлено через 12 часов 14 минут
Никто не может подсказать...?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 17:20     Выделение диапазона в Excel
Посмотрите здесь:

Умещение диапазона в float - C++
Задано количество точек n, расположенных через равные интервалы. Необходимо вычислить диапазон float для данного количества точек, так,...

поиск чисел диапазона - C++
Помогите, плиз, исправить код. Нужно задать массив значений, а затем вівести тлько те значение, которіе входять в даній диапазон.(если есть...

Случайное число из диапазона от 0 до 1 - C++
Почему то на random ругается компилятор мол &quot;random: идентификатор не найден&quot; вроде и библиотеку stdlib.h подтянул. Пишу в С++ в вижуал...

числа из определённого диапазона. - C++
люди у меня короче проблема мне нужно сделать программу в с++ я нашёл в нете подобие моего задания и ещё кое что сам сделал у меня...

Ввод чисел с проверкой диапазона - C++
вводим одно из исходных данных- массу тела (m) и проверяем -m- вещественное число и входит в диапазон от 30 до 200, в инном случае...

Узнать свободный сокет из диапазона - C++
Как средствами с++ можно найти свободный сокет из диапазона (например, 10000-50000)?

Указатель вне корректного диапазона - C++
void f(T a) { T v; T p* = &amp;v; p--; *p = a; // тут p вне корректного диапазона, почему? } объясните этот момент плиз,...

Цикл вывода диапазона данных - C++
Не могу понять почему не выводит минимальное значение, хотя когда тип меняю на char или на short int , то всё прекрасно работает. Почему...

Ограничение диапазона вводимых чисел - C++
Здравствуйте. У меня возникла проблема с ограничением длины вводимого числа. По условию задачи, мне нужно сделать калькулятор на...

Не распознает синтаксис диапазона case - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; void main(void) { using namespace std; setlocale(LC_ALL, &quot;Russian&quot;);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru