1 / 1 / 0
Регистрация: 21.03.2012
Сообщений: 16
|
|
1 | |
Перенести фон Stringgrid'a в таблицу excel29.05.2013, 17:32. Показов 4259. Ответов 20
Метки нет (Все метки)
Добрый день.
В моей программке есть возможность выделять строки другим цветом, и уже 2 дня голову ломаю как скопировать фон стринггрида в ексель,т.е. например есть табличка с данными, допустим 5 строк, я выделил 2 и 4 строку, затем переношу в эксель, и в экселе так же должны быть выделены 2 и 4 строка тем же цветом. И вообще возможно ли это) внизу приложил скриншот как это выглядит в программе например
0
|
29.05.2013, 17:32 | |
Ответы с готовыми решениями:
20
Перенести текст в таблицу Excel Как перенести таблицу из Word в Excel? Запись данных из StringGrida в excel Как перенести данные из Excel в таблицу Access |
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|||||||||||
29.05.2013, 21:27 | 2 | ||||||||||
Передать таблицу на лист MS Excel можно так:
Дальше остаётся раскрасить ячейки диапазона. Это можно сделать таким образом:
1
|
1 / 1 / 0
Регистрация: 21.03.2012
Сообщений: 16
|
|
30.05.2013, 08:17 [ТС] | 3 |
Канешно спасибо, но это не много не то что я просил, вы просто раскрасили ячейки четные не четные, а я просил чтобы именно фон копировался, как я сказал у меня в программе можно строки выделять, т.е. фон у меня белый, я тыкаю на ctrl+лкм по строке, и она красная становится... я могу так и все таблицу красной сделать, и вот можно чтобы именно фон копировался?)
Добавлено через 2 часа 17 минут Что то я стал сомневаться в том возможно ли это)) придумал другой вариант, добавил строчку кода , теперь когда я тыкаю лкм+ctrl по строчке, она также красится в красный и + в отдельной ячейке на этой строке добавляется символ "$". И вот от сюда следует новый вопрос. Как сделать чтобы когда все это переносится в эксель, в экселе искался этот символ $ и если найден то строка в экселе красилась бы в красный цвет? это звучит более реальнее и проще чем я спрашивал выше)))
0
|
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|
30.05.2013, 10:36 | 4 |
Понятно, можно и фон копировать. Я вечером сегодня напишу как это можно сделать.
Здесь немного по-другому надо действовать. В общем, вечером сегодня напишу. Добавлено через 12 минут spectr108, пока посмотри вот эти посты: 1. Меняем цвет ячеек стрингрида. - По левой кнопке мыши ячейка закрашивается, по правой - цвет в ячейке сбрасывается. 2. Раскраска ячеек в stringgrid. - Пометить цветом те ячейки, которые подверглись редактированию. 3. Раскраска StringGrid.
1
|
1 / 1 / 0
Регистрация: 21.03.2012
Сообщений: 16
|
|
30.05.2013, 10:48 [ТС] | 5 |
Да спасибо за ссылки) правда я их уже видел. и я сделал так как в первой сылке что ты дал, только я добавил чтобы нужно было ctrl нажимать ещё ))) жду вечером
0
|
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
||||||
30.05.2013, 17:02 | 6 | |||||
Вот что получилось. Здесь к ячейкам таблицы TStringGrid прикрепляются прямо сами RGB коды цветов. И при переносе таблицы на лист MS Excel, цвет (RGB код) фона ячейки Excel устанавливается равным RGB коду, прикреплённому к соответствующей ячейке таблицы TStringGrid.
2
|
1 / 1 / 0
Регистрация: 21.03.2012
Сообщений: 16
|
|
30.05.2013, 17:49 [ТС] | 7 |
Огромное при огромное спасибо это все же оказалось реальным и самое смешное что мне пришлось изменить 2 моих строчки на ваши и добавить 4-5 ваших) вроде так немного а так много времени у меня отняло.
да и ещё 1 вопрос: сложно ли сделать чтобы из экселя тоже цвет передавался в stringgrid?
1
|
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|||||||||||
31.05.2013, 09:44 | 8 | ||||||||||
Можно вот таким образом сделать. Данные из Excel забираем с помощью функции ExcelToSg(). Эта функция забирает данные из Excel и записывает их в экземпляр TStringGrid. Кроме этого, ExcelToSg() возвращает ссылку на интерфейс диапазона таблицы на листе Excel. Далее мы перебираем ячейки в диапазоне Excel, читаем их фоновые цвета (RGB коды) и прикрепляем их к ячейкам экземпляра TStringGrid.
--- И ещё, при передаче данных в Excel, может быть полезной процедура удаления прежней таблицы:
2
|
1 / 1 / 0
Регистрация: 21.03.2012
Сообщений: 16
|
|
31.05.2013, 10:30 [ТС] | 9 |
Спасибо большое, щас на работе, вечером дома буду попробую вставить в свой код
0
|
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
||||||
31.05.2013, 12:37 | 10 | |||||
Архив с доработанным проектом.
2
|
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
|
|
07.04.2020, 06:34 | 11 |
Туплю...
А как перенести цвета строк TStringGrid во всеми любимый Excel, если строки разукрашены по определенным условиям (в зависимости от введенных значений в ячейках)?
0
|
Модератор
|
|
07.04.2020, 06:53 | 12 |
Вышеприведенный код демонстрирует перенос окрашивания только в том случае, когда
вся строка Стринггрида окрашена целиком одним цветом. И если у Вас в строках сетки каждая ячейка своего цвета - то этот алгоритм Вам не подходит...
1
|
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
|
|
07.04.2020, 10:19 | 13 |
Как раз вся строка и разукрашена определенным цветом в зависимости от значения в определенной ячейке.
Если Fixed-ячейки разукрашены особенным цветом, данный алгоритм тоже не подходит?
0
|
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
|
|
07.04.2020, 12:43 | 15 |
Изменил пример многоуважаемого Mawrat'а... Что не так?!
0
|
D1973
|
07.04.2020, 13:48
#16
|
Не по теме: Эх-х-х... Не получится у меня сейчас глянуть, нет пока Офиса...
0
|
HyperZen
|
07.04.2020, 13:50
#17
|
Не по теме: Я терпеливый, подожду... ))
0
|
3017 / 1642 / 649
Регистрация: 19.03.2019
Сообщений: 5,315
|
|||||||||||
07.04.2020, 14:37 | 18 | ||||||||||
всё так. Но ваши цвета в таблице рисуются только при отображении (событие StringGrid1DrawCell)
а код берёт цвет ячейки из поля Object грида у Mawrat процедура StringGrid1DrawCell берёт цвет там же: Вам не нужно трогать этот код метода рисования. Оставьте его В НЕТРОНУТОМ ВИДЕ. ну, если хотите - выбросите а задание цвета в коде Mawrat, в строчке 186 у него цвет задаётся кликом левой кнопки мышки (правая стирает цвет) Добавлено через 2 минуты как то сумбурно получилось. Пока писал, мне казалось, что всё понятно. Перечитал. Понял, что не очень понятно... суть в том, что процедуру StringGrid1DrawCell тебе трогать не надо. цвет нужно задавать в .Objects[] тогда всё заработает корректно. сейчас попытаюсь исправить твой пример. Добавлено через 21 минуту
1
|
HyperZen
|
07.04.2020, 18:51
#19
|
Не по теме: Пытаюсь "вкурить" код после полторашки пива, пока не выходит... Копипаста, конечно, сработала, но я чувствую себя не удовлетворенным ))) Хочется понимания...
0
|
3017 / 1642 / 649
Регистрация: 19.03.2019
Сообщений: 5,315
|
|
08.04.2020, 11:10 | 20 |
Так ты не стесняйся - спрашивай, что непонятно.
главная суть в том, что Mawrat использовал имеющийся в списках функционал - для TString есть свойство Objects
Сообщение от Classes.pas
а когда читаем из этого поля, то выполняем обратное преобразование TColor ( тут прочитанное значение из Objects[] ) вот и всё. Хочешь - заведи отдельный двухмерный массив и храни цвета в нём. Только не забывай менять размер массива при изменении размера грида. Но решение с отдельным массивом потребует дополнительно больших объёмов памяти. А пользы от него - не больше, чем от "хакерского" варианта, описанного выше.
1
|
08.04.2020, 11:10 | |
08.04.2020, 11:10 | |
Помогаю со студенческими работами здесь
20
Как перенести данные из excel таблицы в веб-таблицу Можно ли как-то перенести таблицу на новый лист в Excel? Перенести все порции данных из Excel в Word-таблицу программирование на java. Как прочесть html таблицу и перенести её в excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |