Вставка строк и изменение границ ячеек в Excel Interop из C#

Задача: вставить строки в таблицу Excel и проставить границы ячеек. Вставка строки может потребовать если ниже динамически заполняемой таблицы находятся еще какие-то данные, например подвал документа с подписями и/или статистикой. при наличии вставка строки будет выглядеть так При этом надо … Читать далее

Excel 2010, Windows 7, два монитора и "ошибка при направлении команды приложению"

По умолчанию Excel 2007/2010 не поддерживает работу с несколькими мониторами - все документы открываются только на одном. Чтобы разные документы можно было растаскивать по разным мониторам, надо поставить в настройках галку на параметр с интуитивно понятным названием "Игнорировать DDE-запросы от … Читать далее

Как прочитать db3/dbf/dbase из C#

Одна из особенностей работы в корпоративной среде - необходимость работы с древними как шерстистые носороги форматами. На самом деле для промышленных систем не особо нужен даже графический интерфейс, не говоря уже о более новых технологиях - на некоторых предприятиях до … Читать далее

Работа с Excel из C# через COM Interop, часть 3, чтение данных

В предыдущей статье я рассмотрел простую запись данных в документ Excel. Теперь настала пора чтения. Само собой мы можем прочитать данные из ячейки по индексу, но из какой именно? Кроме простого чтения нам необходимо знать, какая часть документа заполнена данными. … Читать далее

Как полностью закрыть Excel, вызванный из C# Interop

Работа c Excel в C# похожа на работу с Word, но вот выход закрытие используемого в коде приложения осуществляется несколько более сложным образом: предполагая, что … Читать далее

C#, Interop.Word - ошибка "Отсутствует доступ к отдельным строкам, поскольку таблица имеет ячейки, объединенные по вертикали."

Или в английском варианте Cannot access individual rows in this collection because the table has vertically merged cells. Как несложно догадаться ошибка возникает при попытке объединения ячеек в таблице документа Word по вертикали, в колонках, точнее говоря при попытке обратиться … Читать далее

Как изменить ориентацию страницы в MS Word из C# (interop)

Чтобы просто изменить ориентацию, достаточно использовать свойство диапазона-range PageSetup.Orientation принимающее значения WdOrientation Но если мы хотим изменить ориентацию не всего документа, а конкретных страниц, то перед страницей с измененной ориентацией надо вставить разрыв секции используя метод Range.InsertBreak с параметром из … Читать далее

Работаем с MS Word из C#, часть 4. Обьединяем несколько файлов в один, считаем количество страниц

Задача: сделать большой документ Word, состоящий из множества более мелких, заполняемых по шаблону (чтобы пользователю было удобно смотреть/печатать). Каждый поддокумент должен начинаться с новой страницы, длина каждого документа (даже в страницах) заранее не известна, но ее нужно считать и выводит. … Читать далее

Работаем с MS Word из C#, часть 3. Работа с таблицами

Выбрать уже существующую таблицу внутри документа можно по ее порядковому номеру (начиная с 1 и начала документа) можно через интерфейс Tables. При этом мы получим объект типа Table Новая вставляется методом Tables.Add (предполагается что мы уже получили диапазон _currentRange того … Читать далее

Работаем с MS Word из C#, часть 2. Вставляем текст на закладку и форматируем

Продолжение былинной саги про Office.Interop.Word. Самый простой способ вставить кусок текста в нужную часть Word-шаблона - использовать закладки. В отличие от текстовых меток закладки не надо искать, они невидимы и всегда имеют уникальное имя. Имея открытый в предыдущей части документ … Читать далее