Проблемы с диапазонами в Excel Interop

118
15

Я пишу программу на С#, которая обращается к интерфейсу Excel Interop, чтобы создать электронную таблицу. Моя программа создает рабочий лист, а затем вводит некоторый текст в первую строку. Я хочу, чтобы шрифт был выделен жирным шрифтом для первой строки, как заголовок, но все работает не так, как ожидалось.

Сначала я создаю объект диапазона для строки, затем устанавливаю атрибут BOLD

Range rng1 = ws.Rows[1];
rng1.Style.Font.Bold = true;

Это работает нормально, а потом у меня жирная строка заголовка. Тем не менее, я заметил, что остальная часть таблицы тоже была смелой. Поэтому я добавил код, чтобы отключить его, но он не работает должным образом. Код выглядит так:

Range rng2 = ws.Rows[rownum];
rng2.Style.Font.Bold = false;

Переменная "rownum" начинается с 2 и увеличивается до 12. Она никогда не устанавливается в 1. Так что это должно быть создание второго объекта диапазона, который имеет нулевое перекрытие с первым. Но по какой-то причине это отключает жирный атрибут для всего.

Кажется, что вся электронная таблица влияет на включение или выключение BOLD. О, и я могу сделать эти шаги в любом порядке.

Любые идеи, что происходит и как это исправить?

спросил(а) 2017-11-21T23:09:00+03:00 3 года, 7 месяцев назад
1
Решение
63

Получите диапазон, из которого ячейка, на которую вы хотите установить выделение жирным шрифтом. В этом случае от первого столбца до шестого столбца. (обратите внимание на ось y в ячейках [x, y]):

Excel.Range titleRange= worksheetName.get_Range((object)worksheet.Cells[1, 1], (object)worksheet.Cells[1, 6]);
titleRange.Font.Bold = System.Drawing.FontStyle.Bold;

Не забудьте указать ссылку (если необходимо):

using System.Drawing;

ответил(а) 2017-11-22T12:43:00+03:00 3 года, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема