Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/163: Рейтинг темы: голосов - 163, средняя оценка - 4.86
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2

Управление ячейками в MS Excel

25.06.2011, 11:57. Показов 32630. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Проблема такая: создаю документ MS Excel, кидаю в него данные.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
            Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
           
            ObjWorkBook = ObjExcel.Workbooks.Open(saveFileDialog1.FileName,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing);
            
            ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
 
            ObjWorkSheet.Cells[2, 2] = "Hi!";
//тут нужно менять стиль ячейки
            
            ObjExcel.Visible = true;
            ObjExcel.UserControl = true;
Теперь нужно для ячеек, в которые вставлены данные применить различные стили (шрифты, цвет, выравнивание, формат данных) и сделать обводку границ.
Кто-нибудь знает, как такое сделать или где почитать об этом?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2011, 11:57
Ответы с готовыми решениями:

Управление ячейками в цикле
Требуется в процессе исполнения цикла менять ячейку на следущую и т.д. Вроде как вот так вот: MSFlexGrid1.TextMatrix(i + 1, 3) =...

Excel: Сделать List (of Excel.Range) по столбцу с пустыми и заполненными ячейками
Доброго времени! За несколько часов так и не решил задачку. Файл Excel в столбце D имеет пронумерованные отдельные выборки. Надо...

Работаем с ячейками Excel
Доброго времени суток, дорогие друзья! Сейчас работаю над одной программкой и возникла трудность - ошибка "Could not convert variant...

10
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
25.06.2011, 15:10
Лучший ответ Сообщение было отмечено как решение

Решение

Читать можно на MSDN, да ты и сам это знаешь.

Добавлено через 12 минут
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
29
30
31
32
33
34
using System;
using Excel = Microsoft.Office.Interop.Excel;
 
class Program
{
    static void Main(string[] args)
    {
        Excel.Application application = new Excel.Application();
        Object missing = Type.Missing;
        //добавили книгу
        application.Workbooks.Add(missing);
        Excel.Worksheet sheet = (Excel.Worksheet)application.ActiveSheet;
        //вписываем текст
        sheet.Cells[1, 1] = "hi!";
        ((Excel.Range)sheet.Columns).ColumnWidth = 15;
        //жирность
        (sheet.Cells[1, 1] as Excel.Range).Font.Bold = true;
        //размер шрифта
        (sheet.Cells[1, 1] as Excel.Range).Font.Size = 16;
        //название шрифта
        (sheet.Cells[1, 1] as Excel.Range).Font.Name = "Times New Roman";
        //стиль границы
        (sheet.Cells[1, 1] as Excel.Range).Borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlDouble;
        //толщина границы
        (sheet.Cells[1, 1] as Excel.Range).Borders[Excel.XlBordersIndex.xlEdgeBottom].Weight = Excel.XlBorderWeight.xlMedium;
        //выравнивание по горизонтали
        (sheet.Cells[1, 1] as Excel.Range).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
        //выравнивание по вертикали
        (sheet.Cells[1, 1] as Excel.Range).VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
        //объединение ячеек
        sheet.get_Range(sheet.Cells[2, 2], sheet.Cells[4, 4]).Merge(missing);
        application.Visible = true;
    }
}
7
1 / 1 / 0
Регистрация: 28.09.2009
Сообщений: 4
11.04.2012, 15:31
Вот тут есть короткое, но толковое описание того как работать с границами ячейки
1
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
11.04.2012, 19:33
nio, я обычно нужное действие записываю макрорекордером и смотрю код записанного макроса
1
12 / 12 / 3
Регистрация: 22.10.2010
Сообщений: 137
11.04.2012, 21:39
Цитата Сообщение от Памирыч Посмотреть сообщение
nio, я обычно нужное действие записываю макрорекордером и смотрю код записанного макроса
да, да. Совершенно верно, запускается Excel, запускается запись кода макроса, выполняются нужные действия: объединение, форматирование, выделение цветом и т.д. И затем просматривается сам записанный код и вставляется в C#.
Если при выполнении кода из C# окно Excel видимо, то можно как мультик смотреть как ячейки преобразовываются последовательно записному коду скрипта. На многих производит впечатление.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
11.04.2012, 21:42  [ТС]
shefkzn, Памирыч, откопали же
Но все-равно спасибо
0
12.04.2012, 06:07

Не по теме:

Цитата Сообщение от nio Посмотреть сообщение
откопали же
:wall:
Е-мое, я-то чем смотрел :wall::negative:

0
0 / 0 / 1
Регистрация: 23.03.2014
Сообщений: 4
23.03.2014, 21:18
C#
1
sheet.get_Range(sheet.Cells[2, 2], sheet.Cells[4, 4]).Merge(missing);
На этой стоке выходит ошибка.
Порылся в интернете, решения не нашел...
Как все-таки объединить ячейки с адресацией в стиле R1C1?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2014, 00:53  [ТС]

Не по теме:

Опять она всплыла :facepalm:


Цитата Сообщение от Defcon7 Посмотреть сообщение
На этой стоке выходит ошибка.
какая ошибка?
0
0 / 0 / 1
Регистрация: 23.03.2014
Сообщений: 4
24.03.2014, 01:08
"object" не содержит определения для "get_Range"

в строке 32

C#
1
sheet.get_Range(sheet.Cells[2, 2], sheet.Cells[4, 4]).Merge(missing);
Уже нашел решение как объединить ячейки

C#
1
2
3
4
Excel.Range oRange;
 
            oRange = ObjWorkSheet.Range[ObjWorkSheet.Cells[4, 2], ObjWorkSheet.Cells[4, human + 4]];
            oRange.Merge(Type.Missing);
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.03.2014, 01:19
use ClosedXML
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2014, 01:19
Помогаю со студенческими работами здесь

Работа с ячейками Excel
подскажите как реализовать метод работы с ячейками, как связать их, чтобы из одного файла они заполнялись в другой файл форму

Работа с excel ячейками
Возникли трудности при работе с ячейками excel файла. Файл постоянно меняется. Но есть определенные ячейки имена которых известны(и...

Работа с ячейками Excel 2013
Есть документ1.xlsx на листе 1 в ячейке H14 лежит число, на странице 2 ячейка A12 и A13 лежат названия фирмы и ее адрес. Как присвоит это в...

Работа со строками и ячейками в excel
Добрый день. Сломал голову уже((( Имеются множество ячеек в которые я подтягиваю данные из текста писем. Вида они одинакового это...

Отправка писем с нужными ячейками из Excel
Добрый день подскажите как устранить ошибку пжл. Код нужен для отправки писем с нужными ячейками из эксель. ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru