Задача: вставить строки в таблицу Excel и проставить границы ячеек. Вставка строки может потребовать если ниже динамически заполняемой таблицы находятся еще какие-то данные, например подвал документа с подписями и/или статистикой.
при наличии
using Excel = Microsoft.Office.Interop.Excel; // разный код private Excel.Worksheet _workSheet;
вставка строки будет выглядеть так
public void InsertRow(int rowNum) { Excel.Range cellRange = (Excel.Range) _workSheet.Cells[rowNum, 1]; Excel.Range rowRange = cellRange.EntireRow; rowRange.Insert(Excel.XlInsertShiftDirection.xlShiftDown, false); }
При этом надо учитывать то, что во вставляемую строку будет копироваться стиль текста предыдущей строки, но не будет копироваться стиль границ.Избавится от копирования стиля текста из шапки таблицы можно тупо начав встовлять строки со второй, но вот границы придется проставлять вручную.
Границы в Excel задаются сочетанием двух параметров - типа линии XlLineStyle и толщины линии XlBorderWeight, для задания границ надо вытащить из ячейки обьект типа Borders. При этом надо учитывать, что если мы в общей куче зададим для одной ячейки отсуствующие у нее внутренние границы, то Excel 2007 и старше отработает нормально, а Excel 2003 вылетит с ошибкой.
При наличии
public enum ExcelLineType { DotsSmall, Dots, None, Normal, Thick, Double }
Можно использовать такие методы для класса, инкапсулирующего документ Excel
public void SetCellBorders(int rowNumber, int columnNumber, ExcelLineType lineType) { Excel.XlLineStyle lineStyle; Excel.XlBorderWeight lineWeight; setLineStyleAndWeight(lineType, out lineStyle, out lineWeight); Excel.Range cellRange = (Excel.Range)_workSheet.Cells[rowNumber, columnNumber]; Excel.Borders borders = cellRange.Borders; borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle = lineStyle; borders[Excel.XlBordersIndex.xlEdgeTop].Weight = lineWeight; borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = lineStyle; borders[Excel.XlBordersIndex.xlEdgeBottom].Weight = lineWeight; borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = lineStyle; borders[Excel.XlBordersIndex.xlEdgeLeft].Weight = lineWeight; borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle = lineStyle; borders[Excel.XlBordersIndex.xlEdgeRight].Weight = lineWeight; } private void setLineStyleAndWeight(ExcelLineType lineType, out Excel.XlLineStyle lineStyle, out Excel.XlBorderWeight lineWeight) { lineStyle = Excel.XlLineStyle.xlContinuous; lineWeight = Excel.XlBorderWeight.xlThin; if (lineType == ExcelLineType.DotsSmall) { lineStyle = Excel.XlLineStyle.xlDot; lineWeight = Excel.XlBorderWeight.xlHairline; } else if (lineType == ExcelLineType.Thick) { lineStyle = Excel.XlLineStyle.xlDot; lineWeight = Excel.XlBorderWeight.xlMedium; } else if (lineType == ExcelLineType.None) { lineStyle = Excel.XlLineStyle.xlLineStyleNone; } else if (lineType == ExcelLineType.Double) { lineStyle = Excel.XlLineStyle.xlDouble; lineWeight = Excel.XlBorderWeight.xlThick; } else if (lineType == ExcelLineType.Dots) { lineStyle = Excel.XlLineStyle.xlDot; } }
XlLineStyle Enumeration
XlBorderWeight Enumeration
Borders Interface
ertw
А можно ли как то объединить ячейки между собой? Иными словами стереть границы у определенных ячеек? То есть суть в том что в Excel у меня есть объединенные между собой ячейки, но в датагридвиев они у меня не объединены? Перерыл гугл, находил несколько способов но ни 1 не получился(
К сожалению, ничем не могу помочь, но уверен, что Вы найдёте правильное решение.
----
Сколько стоит дом в черногории на берегу моря
Именно на нынешний день выбор охлаждающей приборов полагается пролегать сразу же и качественно, то иначе совершаться на выигрышных согласии, по демократичной деньгах и отличном сервисном сервисе. Презентованная фирма вентиляционной техники предоставляет подачу кондиционерной построении всякое помещение особенно по таких условиях. Организация Мастер-Климат в столице заправка кондиционера киев генерирует оборот, подачу, установку, регулирование, разбор, чистку и испытание личной кондиционерной оборудовании в приемлемыми стоимостью и оформлением работоспособности. На данном серверном-маркете Мастер Климат пользователи несет возможность выделить лучшую оснащение евро и восточных дестрибюторов Panasonic, NeoClima, Купер Хантер, Mitsubishi, Олма, Леберг, которые возможно купить по Киеве в вразумительным ценами. Мастер Климат осуществляет продажу снабжения кондиционирования и теплоты, какие поможет предоставить правильный микроклимат, удобство и нескончаемую работу к долгие годы применения. Пишите к нам, тогда менеджер определим именно для Вас оптимальные варианты полностью на специальных условиях.
Кондиционерные аппараты и вентиляционные схемы за вразумительными деньгам у Одессе пользователи имеют возможность обозреть плюс заказать по серверном- точке климатизационной сноровки Мастер Климат Монтаж кондиционеров в Одессе. Именно на сайте точки клиент имеют возможность обозреть климатизер бутафора Toshiba, Панасоник, Neoclima, Купер Hunter, Carrier, Даикин, Чиго, LG и другие, или же к тому же утвердить вентиляционный блок плюс свободную снабжение в Одессе. Также кроме привоза мы выполняем сервис сборки, разбор, испытание и уборка канальных сплит- конструкция также производтсвенных приборов. Приобретайте кондиционеры необходимой объема также типа также приемлемые деньги в поставщику Мастер Климат, ну а квалифицированные монтажники передают высокопрофессиональное обслуживание касательно настройка персонального климатизерного аппаратуры. Промышляя собственно на торге долгое пору, фирма получили любезное уважение среди заказчиков, атестаты свидетельства качества, выполнимость также полномочия зарегистрированного поставителя, это поручает компании потенциал вести сбыт принимая во внимание различные просьбы пользователей.
It is cleared
-----
boat rentals in the bahamas
Да... Нам ешо далеко до такого...
----
Отель турция все включено 1 линия