Я пытаюсь создать именованные диапазоны в Excel с OpenXML.Я могу добавить DefinedName в коллекцию DefinedNames, но это, похоже, ничего не делает.Я заметил место в ExtendedFileProperties, где сохраняются имена диапазонов, структуру под названием «TitlesOfParts».Я попытался добавить запись там, но это вызывает Excel, чтобы выдать ошибку, и названный диапазон не создается.Вот код, который я использую:
public void AddNamedRange(string pNamedRangeRef, string pNamedRangeName)
{
DefinedName _definedName = new DefinedName() { Name = pNamedRangeName, Text = pNamedRangeRef };
_workbook.Descendants<DocumentFormat.OpenXml.Spreadsheet.DefinedNames>().First().Append(_definedName);
DocumentFormat.OpenXml.VariantTypes.VTLPSTR _t = new DocumentFormat.OpenXml.VariantTypes.VTLPSTR() { Text = pNamedRangeName };
_spreadsheet.ExtendedFilePropertiesPart.Properties.TitlesOfParts.VTVector.Append(_t);
_spreadsheet.ExtendedFilePropertiesPart.Properties.TitlesOfParts.VTVector.Size++;
}