示例#1
0
        public void DeleteSheet(string name)
        {
            var sheet     = document.FindSheetByName(name);
            var worksheet = sheet.Parent as Worksheet;

            sheet.Remove();
        }
示例#2
0
        public void Init(SpreadsheetDocument document)
        {
            AllCells = document.FindCellsByRange(CellRange);

            CellRange.SheetTemplate = document.FindSheetByName(CellRange.SheetName);
            CellRange.WorksheetPart = ((WorksheetPart)document.WorkbookPart.GetPartById(CellRange.SheetTemplate.Id));
            CellRange.MergeCells    = CellRange.WorksheetPart.Worksheet.GetFirstChild <MergeCells>();

            if (CellRange.MergeCells != null)
            {
                CellRange.MergeCellsDic = CellRange.MergeCells.ToDictionary(e => (e as MergeCell).Reference.Value.ToUpper().Split(':')[0], e => (e as MergeCell));
            }

            foreach (var rowGroup in AllCells)
            {
                foreach (Cell cell in rowGroup)
                {
                    if (cell.DataType != null && cell.CellValue != null)
                    {
                        string stringValue = null;

                        switch (cell.DataType.Value)
                        {
                        case CellValues.SharedString:
                        {
                            int index = int.Parse(cell.CellValue.Text);
                            SharedStringItem stringItem = document.WorkbookPart.SharedStringTablePart.SharedStringTable.Elements <SharedStringItem>().ElementAt(index);

                            stringValue = stringItem.InnerText;
                            break;
                        }

                        case CellValues.String:
                        {
                            stringValue = cell.CellValue.Text;
                            break;
                        }
                        }

                        if (PARAM_PATTERN == null)
                        {
                            PARAM_PATTERN = new Regex(this.regexVariable);
                        }
                        if (!string.IsNullOrEmpty(stringValue) && PARAM_PATTERN.IsMatch(stringValue))
                        {
                            var    match        = PARAM_PATTERN.Match(stringValue);
                            var    Func         = "";
                            string Variable     = "";
                            string VariableFull = Variable = match.Groups[1].Value;


                            string regexFunc       = @".\:(.*)";
                            var    regexFuncRexgex = new Regex(regexFunc);
                            if (regexFuncRexgex.IsMatch(VariableFull))
                            {
                                var match1 = regexFuncRexgex.Match(VariableFull);

                                Func     = match1.Groups[1].Value;
                                Variable = VariableFull.Replace(":" + Func, "");
                            }

                            VariableFull = string.Format("[%{0}%]", VariableFull);
                            AllCellsConfig.Add(new
                            {
                                TextOrigin   = stringValue,
                                Cell         = cell,
                                VariableFull = VariableFull,
                                Variable     = Variable,
                                Func         = Func,
                            });
                        }
                    }
                }
            }
        }