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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разработать программу для вычисления определенного интеграла методом трапеций http://www.cyberforum.ru/cpp-beginners/thread1310841.html
Разработать программу для вычисления определенного интеграла методом трапеций для функции типа: y=a*{e}^{b*sin(c*x)}+d . Коэффициенты a, b, c, d и границы интервала интегрирования считываются с экрана.
C++ Стек и очередь C++ Система состоит из трех процессоров P1, P2, P3, очереди F, стека S и распределителя задач R. В систему поступают запросы на выполнение задач трёх типов – T1, T2 и T3, каждая для своего процессора. Поступающие запросы ставятся в очередь. Если в начале очереди находится задача Ti и процессор Pi свободен, то распределитель R ставит задачу на выполнение в процессор Pi, а если процессор Pi занят,... http://www.cyberforum.ru/cpp-beginners/thread1310840.html
класс объединение строк C++
Добавить в строковый класс функцию, которая создает строку, содержащую общие символы для двух строк, перегружается оператор * #include <iostream> #include <cstring> using namespace std; class _string{ char *_str; int _len; public:
C++ Посчитать все элементы в массиве после последнего отрицательного
//написал код, и нашел последний отрицательный элемент, но мне нужно еще найти сумму всех элементов после этого последнего отрицательного, помогите пожалуйста! #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); int i, j;
C++ Построить матрицу В, каждый элемент которой - минимальный элемент матрицы А из указанной области http://www.cyberforum.ru/cpp-beginners/thread1310784.html
Дана матрица A (NxN размер). Нужно построить матрицу В, каждый элемент которой - минимальный элемент матрицы А из указанной области(внизу фотка) При вводе 123 456 789 Должно вывести 111 211 341
C++ Как исправить ошибку? Здравствуйте, при запуске программы возникает ошибка. Если кто может сказать, как ее можно исправить, то подскажите. Прикрепляю ошибку и программу. подробнее

Показать сообщение отдельно
OverDozero
99 / 99 / 6
Регистрация: 07.04.2011
Сообщений: 522

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

26.11.2014, 17:20. Просмотров 223. Ответов 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 минут
Никто не может подсказать...?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru