/** * marshal named ranges from the {@link #namedRanges} collection to the underlying CT_Workbook bean */ private void SaveNamedRanges() { // Named ranges if (namedRanges.Count > 0) { CT_DefinedNames names = new CT_DefinedNames(); List<CT_DefinedName> nr = new List<CT_DefinedName>(namedRanges.Count); foreach (XSSFName name in namedRanges) { nr.Add(name.GetCTName()); } names.SetDefinedNameArray(nr); if (workbook.IsSetDefinedNames()) { workbook.unsetDefinedNames(); } workbook.SetDefinedNames(names); // Re-process the named ranges ReprocessNamedRanges(); } else { if (workbook.IsSetDefinedNames()) { workbook.unsetDefinedNames(); } } }