Удалить существующие диапазоны в Excel Open XML - PullRequest
0 голосов
/ 08 января 2012

Я работаю с Open XML SDK для создания документа Excel. Чтобы сэкономить время, я начинаю с существующего документа и просто вносю необходимые изменения.

Чтобы найти определенные ячейки, мой существующий документ определяет несколько диапазонов. Однако, когда я закончу, я бы хотел удалить эти диапазоны.

Кажется, я не могу найти способ удалить диапазоны из документа Excel, в котором они уже есть. Любые советы, предложения или ссылки?

Ответы [ 2 ]

0 голосов
/ 09 января 2012

Диапазоны хранятся как определенные имена под элементом рабочей книги. Вам нужно будет найти определенный элемент имени на основе имени, которое вы дали ему на листе, а затем удалить его таким образом.

public void DeleteRange(WorkbooPart workbookPart, string definedNameToDelete)
{
   workbookPart.Workbook.DefinedNames.Descendants<DefinedName>().First(x => x.Name == definedNameToDelete).Remove();
}

Это просто небольшой фрагмент того, что вам, возможно, придется сделать. Очевидно, что вам может потребоваться проверка ошибок, если элемент DefinedNames не существует или определенное имя, которое вы хотите удалить, уже удалено, но, надеюсь, это укажет вам правильное направление.

0 голосов
/ 09 января 2012

Именованные диапазоны определены в рабочей книге. Посмотрите на его API и попробуйте найти его там. Или проверьте MSDN .

Также взгляните на Templater . Может быть, это уже делает то, что вам нужно. Отказ от ответственности: я автор.

...