Excel'de OpenXML ile adlandırılmış aralıklar oluşturmaya çalışıyorum. DefinedNames koleksiyonuna bir DefinedName ekleyebiliyorum, ancak hiçbir şey yapmıyor gibi görünüyor. ExtendedFileProperties'te, aralıkların isimlerinin kaydedildiği, "TitlesOfParts" adlı bir yapının farkına vardım. Orada bir giriş eklemeyi denedim ama bu bir hata atmak için excel neden olur ve adlandırılmış aralık oluşturulmaz.Excel'de Adlandırılmış Adlar OpenXML
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++;
}
"Ben DefinedNames koleksiyonunda bir DefinedName eklemek mümkün, ama bu bir şey yapmak görünmüyor" - yani yapmanız gereken tüm olmalıdır - Hangi yönden bir şey yapmaz? Belgeyi kaydettiğinizde ve Excel'de açtığınızda, adlandırılmış aralığınız açılır listede görünür mü? Xlsx dosyasını zip dosyası olarak açarsanız, adlandırılmış aralığınızı workbook.xml dosyasında bulabilir misiniz? – Ben
Bahse girerim, değerleri uygun şekilde değerlendiremezsiniz. PNamedRangeName öğesinde "myrangename" gibi bir şey görünmeli ve pNamedRangeRef "Sheet1! $ A $ 1" gibi görünmelidir. –