2015-11-27 4 views
1

Я работаю над приложением Excel VSTO Excel 2013/2015. Из данных, введенных в форме Windows, я хотел бы создать новую запись в существующей таблице на одном из моих рабочих листов.Добавление строки в таблицу Excel

Как вставить новую строку таблицы в таблицу Excel (а не простой массив листов) с использованием C# и VSTO?

+2

Запишите макрос, который вы делаете это вручную, переводите в методы взаимодействия, большинство из которых одно и то же. –

+1

Не стесняйтесь отката - я не уверен, что самый лучший способ отличить массив массивов от одного из «полосатых» творений Excel! – pnuts

+0

Я осознал свою ошибку. Должно быть возможно получить метод ListObject.ListRows.Add в пространстве имен Microsoft.Office.Interop.Excel. Я запутался, потому что аналогичный тип существует в 'Microsoft.Office.Tools.Excel', но отсутствует метод 'Add'. Работаю над этим. То, с чем я сейчас сталкиваюсь, это получить дескриптор 'ListObject' для таблицы. – jerry

ответ

4

Microsoft.Office.Tools.Excel.ListObject предоставляет необходимую функциональность. Таблицу можно ссылаться и строки добавляются следующим образом:

Microsoft.Office.Tools.Excel.ListObject lo = Globals.Sheet1.MyTable; 
lo.ListRows.Add(); 

Необязательно, положение новой строки могут быть указаны (https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.listrows.add.aspx). Значение по умолчанию находится в конце таблицы.

IntelliSense не показывал функцию Add() в моем случае, что вызвало путаницу. Просто введите его.

+0

Как странно. Может ли кто-нибудь объяснить, почему это не появляется в intellisense? Какая страшная добыча. ПОЧЕМУ, MICROSOFT? ЗАЧЕМ?! – Lopsided