में नामित रेंज मैं ओपनएक्सएमएल के साथ एक्सेल में नामित श्रेणियां बनाने की कोशिश कर रहा हूं। मैं DefinedNames संग्रह में एक DefinedName जोड़ने में सक्षम हूं, लेकिन ऐसा कुछ भी प्रतीत नहीं होता है। मैंने विस्तारितफाइलप्रॉपर्टीज में एक जगह देखी जहां श्रेणियों के नाम सहेजे जा रहे हैं, "टाइटलसफर्ट्स" नामक एक संरचना। मैंने वहां एक प्रविष्टि जोड़ने की कोशिश की है, लेकिन यह एक त्रुटि फेंकने के लिए एक्सेल का कारण बनता है और नामित रेंज नहीं बनाई गई है।एक्सेल ओपनएक्सएमएल
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++;
}
"मैं DefinedNames संग्रह में एक DefinedName जोड़ने के लिए कर रहा हूँ, लेकिन वह कुछ भी करने को नहीं लगता है" - कि तुम सब करने की है होना चाहिए - किस तरह से यह कुछ भी नहीं है? जब आप दस्तावेज़ को सहेजते हैं और इसे एक्सेल में खोलते हैं, तो क्या आपकी नामित श्रेणी ड्रॉपडाउन सूची में दिखाई देती है? यदि आप xlsx को ज़िप फ़ाइल के रूप में खोलते हैं, तो क्या आप अपना नामांकित श्रेणी workbook.xml में पा सकते हैं? – Ben
मुझे यकीन है कि आप मूल्यों को सही तरीके से अर्हता प्राप्त करने में विफल रहे हैं। आपके pNamedRangeName को "myrangename" जैसे कुछ दिखना चाहिए और pNamedRangeRef को "शीट 1! $ ए $ 1" जैसा दिखना चाहिए। –