Пример #1
0
        public static bool SwitchXlsx(int id)
        {
            var tmpXlsx = launchedXlsx.Where(x => x.Id == id).FirstOrDefault();

            CurrentXlsx = tmpXlsx ?? CurrentXlsx;
            return(tmpXlsx != null);
        }
Пример #2
0
        public void ShouldSelectionWork_WhenMixingOrderOfSelectionCorners()
        {
            var wrapper = new XlsxWrapper(0);

            wrapper.SelectRange(4, "C", 8, "A");
            Assert.AreEqual(15, wrapper.SelectedCells.Cells().Count());
        }
Пример #3
0
        public void ShouldSelectedCellsUpdate_WhenCaliingSelectRange()
        {
            var wrapper = new XlsxWrapper(0);

            wrapper.SelectRange(3, "B", 6, "D");
            Assert.AreEqual(12, wrapper.SelectedCells.Cells().Count());
        }
Пример #4
0
        public static XlsxWrapper AddXlsx()
        {
            int         assignedId = GetNextId();
            XlsxWrapper wrapper    = new XlsxWrapper(assignedId);

            launchedXlsx.Add(wrapper);
            CurrentXlsx = wrapper;
            return(wrapper);
        }
Пример #5
0
 public static void Remove(XlsxWrapper wrapper)
 {
     if (wrapper != null)
     {
         wrapper.Close();
         if (launchedXlsx.Contains(wrapper))
         {
             launchedXlsx.Remove(wrapper);
         }
         CurrentXlsx = launchedXlsx.FirstOrDefault();
     }
 }
Пример #6
0
        public static void Remove(int id)
        {
            XlsxWrapper toRemove = launchedXlsx.Where(x => x.Id == id).FirstOrDefault();

            Remove(toRemove);
        }
Пример #7
0
            public DataCache(XlsxWrapper xlsxWrapper)
            {
                owner = xlsxWrapper;
                WorkbookPart wbPart = xlsxWrapper.spreadsheetDocument.WorkbookPart;

                List <string> sharedStringCache = new List <string>();

                if (wbPart.SharedStringTablePart != null)
                {
                    using (OpenXmlReader shareStringReader = OpenXmlReader.Create(wbPart.SharedStringTablePart))
                    {
                        while (shareStringReader.Read())
                        {
                            if (shareStringReader.ElementType == typeof(SharedStringItem))
                            {
                                SharedStringItem stringItem = (SharedStringItem)shareStringReader.LoadCurrentElement();
                                sharedStringCache.Add(stringItem.Text?.Text ?? string.Empty);
                            }
                        }
                    }
                }

                foreach (WorksheetPart sheetPart in wbPart.WorksheetParts)
                {
                    void AddEntry(CellRef reference, string value)
                    {
                        if (value2adress.ContainsKey(value))
                        {
                            value2adress[value].Add(reference);
                        }
                        else
                        {
                            value2adress[value] = new List <CellRef>()
                            {
                                reference
                            }
                        };
                        adress2value[reference] = value;
                    }

                    string sheetID = wbPart.GetIdOfPart(sheetPart);

                    using (OpenXmlReader sheetReader = OpenXmlReader.Create(sheetPart))
                    {
                        while (sheetReader.Read())
                        {
                            if (sheetReader.ElementType == typeof(Cell))
                            {
                                Cell    cell       = (Cell)sheetReader.LoadCurrentElement();
                                CellRef cellAdress = new CellRef()
                                {
                                    sheetID = sheetID,
                                    adress  = cell.CellReference
                                };
                                if ((cell.DataType?.Value ?? CellValues.Error) == CellValues.SharedString)
                                {
                                    AddEntry(
                                        cellAdress,
                                        sharedStringCache[Int32.Parse(cell.CellValue.InnerText)]);
                                }
                                else
                                {
                                    AddEntry(cellAdress, owner.GetStringValue(cell));
                                }
                            }
                        }
                    }
                }
            }
        }