Exemplo n.º 1
0
        private void OnSheetDelete(int index)
        {
            this.workbook.sheets.RemoveSheet(index);
            if (this.calcChain != null)
            {
                this.RemoveRelation((POIXMLDocumentPart)this.calcChain);
                this.calcChain = (CalculationChain)null;
            }
            List <XSSFName> xssfNameList = new List <XSSFName>();

            foreach (XSSFName namedRange in this.namedRanges)
            {
                CT_DefinedName ctName = namedRange.GetCTName();
                if (ctName.IsSetLocalSheetId())
                {
                    if ((long)ctName.localSheetId == (long)index)
                    {
                        xssfNameList.Add(namedRange);
                    }
                    else if ((long)ctName.localSheetId > (long)index)
                    {
                        --ctName.localSheetId;
                        ctName.localSheetIdSpecified = true;
                    }
                }
            }
            foreach (XSSFName xssfName in xssfNameList)
            {
                this.namedRanges.Remove(xssfName);
            }
        }
        public XMLDefinedName CreateDefinedName(string name)
        {
            if (this._workbook.DefinedNames == null)
            {
                this._workbook.DefinedNames = new CT_DefinedNames();
            }
            CT_DefinedName cT_DefinedName = new CT_DefinedName();
            XMLDefinedName xMLDefinedName = new XMLDefinedName(cT_DefinedName);

            xMLDefinedName.Name = name;
            this._workbook.DefinedNames.DefinedName.Add(cT_DefinedName);
            return(xMLDefinedName);
        }
        public XMLDefinedName CreateDefinedName(string name)
        {
            if (_workbook.DefinedNames == null)
            {
                _workbook.DefinedNames = new CT_DefinedNames();
            }
            CT_DefinedName cT_DefinedName = new CT_DefinedName();
            XMLDefinedName result         = new XMLDefinedName(cT_DefinedName)
            {
                Name = name
            };

            _workbook.DefinedNames.DefinedName.Add(cT_DefinedName);
            return(result);
        }
Exemplo n.º 4
0
        internal XSSFName CreateBuiltInName(string builtInName, int sheetNumber)
        {
            this.ValidateSheetIndex(sheetNumber);
            CT_DefinedName name = (this.workbook.definedNames == null ? this.workbook.AddNewDefinedNames() : this.workbook.definedNames).AddNewDefinedName();

            name.name                  = builtInName;
            name.localSheetId          = (uint)sheetNumber;
            name.localSheetIdSpecified = true;
            XSSFName xssfName = new XSSFName(name, this);

            foreach (object namedRange in this.namedRanges)
            {
                if (namedRange.Equals((object)xssfName))
                {
                    throw new POIXMLException("Builtin (" + builtInName + ") already exists for sheet (" + (object)sheetNumber + ")");
                }
            }
            this.namedRanges.Add(xssfName);
            return(xssfName);
        }
Exemplo n.º 5
0
 /**
  * Creates an XSSFName object - called internally by XSSFWorkbook.
  *
  * @param name - the xml bean that holds data represenring this defined name.
  * @param workbook - the workbook object associated with the name
  * @see NPOI.XSSF.usermodel.XSSFWorkbook#CreateName()
  */
 public XSSFName(CT_DefinedName name, XSSFWorkbook workbook)
 {
     _workbook = workbook;
     _ctName   = name;
 }
Exemplo n.º 6
0
        void WriteWorkbook()
        {
            rels.Add(new CT_Relationship {
                Type = Relationships.Workbook, Target = "xl/workbook.xml"
            });
            OverrideContentType("/xl/workbook.xml", ContentTypes.Workbook);

            sharedStrings = new SharedStrings();
            ClearStyles();

            workbookRelationships = new Relationships();

            int sheetIndex = 1;

            contentTypes.Add(new CT_Default {
                Extension = "xml", ContentType = ContentTypes.Xml
            });
            contentTypes.Add(new CT_Default {
                Extension = "rels", ContentType = ContentTypes.Rels
            });

            var sheets = new List <CT_Sheet>();

            foreach (var sheet in workbook.Sheets)
            {
                var relativePath = String.Format("worksheets/sheet{0}.xml", sheetIndex);
                var sheetPath    = "xl/" + relativePath;
                var rid          = workbookRelationships.Add(new CT_Relationship
                {
                    Target     = relativePath,
                    TargetMode = ST_TargetMode.Internal,
                    Type       = Relationships.Sheet
                });
                OverrideContentType(sheetPath, ContentTypes.Sheet);
                var st = new CT_Sheet
                {
                    id      = rid,
                    name    = sheet.SheetName,
                    sheetId = (uint)sheetIndex
                };
                sheets.Add(st);
                WriteSheet(sheetPath, sheet);
                sheetIndex++;
            }

            var wb = new CT_Workbook()
            {
                sheets    = sheets.ToArray(),
                bookViews = new[] { new CT_BookView() }
            };

            var definedNames = new List <CT_DefinedName>();

            foreach (var definedName in workbook.DefinedNames)
            {
                var dn = new CT_DefinedName
                {
                    name  = definedName.Name,
                    Value = definedName.Value
                };
                definedNames.Add(dn);
            }

            for (var i = 0; i < workbook.Sheets.Count; i++)
            {
                foreach (var definedName in workbook.DefinedNames)
                {
                    var dn = new CT_DefinedName
                    {
                        name                  = definedName.Name,
                        Value                 = definedName.Value,
                        localSheetId          = (uint)i,
                        localSheetIdSpecified = true
                    };
                    definedNames.Add(dn);
                }
            }

            if (definedNames.Count > 0)
            {
                wb.definedNames = definedNames.ToArray();
            }


            WriteFile("xl/workbook.xml", wb, SpreadsheetNs(true));

            if (sharedStrings.Count > 0)
            {
                WriteSharedStrings();
            }

            if (!styles.Empty)
            {
                OverrideContentType("xl/styles.xml", ContentTypes.Styles);
                workbookRelationships.Add(new CT_Relationship {
                    Target = "styles.xml", Type = Relationships.Styles
                });
                WriteStyles("xl/styles.xml");
            }

            WriteRelationsips("xl/_rels/workbook.xml.rels", workbookRelationships);
        }
Exemplo n.º 7
0
 public XMLDefinedName(CT_DefinedName definedName)
 {
     _definedname = definedName;
 }