Esempio n. 1
0
        public void TestDate1904SetAndRemoveSetting()
        {
            var dt1 = new DateTime(2008, 2, 29);
            var dt2 = new DateTime(1950, 11, 30);

            ExcelPackage pck = new ExcelPackage();

            pck.Workbook.Date1904 = true;
            var ws = pck.Workbook.Worksheets.Add("test");

            ws.Cells[1, 1, 2, 1].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(14);
            ws.Cells[1, 1].Value = dt1;
            ws.Cells[2, 1].Value = dt2;
            pck.Save();


            var pck2 = new ExcelPackage(pck.Stream);

            pck2.Workbook.Date1904 = false;
            pck2.Save();

            var            pck3 = new ExcelPackage(pck2.Stream);
            ExcelWorksheet ws3  = pck3.Workbook.Worksheets["test"];

            Assert.AreEqual(dt1.AddDays(365.5 * -4), ws3.Cells[1, 1].Value);
            Assert.AreEqual(dt2.AddDays(365.5 * -4), ws3.Cells[2, 1].Value);

            pck.Dispose();
            pck2.Dispose();
            pck3.Dispose();
        }
Esempio n. 2
0
        public void TestDate1904SetAndSetSetting()
        {
            var dt1 = new DateTime(2008, 2, 29);
            var dt2 = new DateTime(1950, 11, 30);

            ExcelPackage pck = new ExcelPackage();

            pck.Workbook.Date1904 = true;

            var ws = pck.Workbook.Worksheets.Add("test");

            ws.Cells[1, 1, 2, 1].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(14);
            ws.Cells[1, 1].Value = dt1;
            ws.Cells[2, 1].Value = dt2;
            pck.Save();


            var pck2 = new ExcelPackage(pck.Stream);

            pck2.Workbook.Date1904 = true;  // Only the cells must be updated when this change, if set the same nothing must change
            pck2.Save();


            var pck3 = new ExcelPackage(pck2.Stream);
            var ws3  = pck3.Workbook.Worksheets["test"];

            Assert.AreEqual(dt1, ws3.Cells[1, 1].Value);
            Assert.AreEqual(dt2, ws3.Cells[2, 1].Value);
            pck.Dispose();
            pck2.Dispose();
            pck3.Dispose();
        }
 public XSSFDxfStyleProvider(CT_Dxf dxf, int stripeSize, IIndexedColorMap colorMap)
 {
     this.stripeSize = stripeSize;
     this.colorMap   = colorMap;
     if (dxf == null)
     {
         border = null;
         font   = null;
         number = null;
         fill   = null;
     }
     else
     {
         border = dxf.IsSetBorder() ? new XSSFBorderFormatting(dxf.border) : null;
         font   = dxf.IsSetFont() ? new XSSFFontFormatting(dxf.font) : null;
         if (dxf.IsSetNumFmt())
         {
             CT_NumFmt numFmt = dxf.numFmt;
             number = new ExcelNumberFormat((int)numFmt.numFmtId, numFmt.formatCode);
         }
         else
         {
             number = null;
         }
         fill = dxf.IsSetFill() ? new XSSFPatternFormatting(dxf.fill) : null;
     }
 }
 internal string GetNewID(int NumFmtId, string Format)
 {
     if (NumFmtId < 0)
     {
         NumFmtId = ExcelNumberFormat.GetFromBuildIdFromFormat(Format);
     }
     return(NumFmtId.ToString());
 }
Esempio n. 5
0
        public ExcelNumberFormatInstance(ObjectInstance prototype, ExcelNumberFormat excelNumberFormat)
            : this(prototype)
        {
            if (excelNumberFormat == null)
            {
                throw new ArgumentNullException("excelNumberFormat");
            }

            m_excelNumberFormat = excelNumberFormat;
        }
Esempio n. 6
0
        private static void SetStyle(ExcelWorkbook workbook, FormulaCell item, DataType dataType)
        {
            var sheet = workbook.Worksheets.GetBySheetID(item.SheetID);

            if (dataType == DataType.Date)
            {
                sheet.Cells[item.Row, item.Column].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(14);
            }
            else if (dataType == DataType.Time)
            {
                sheet.Cells[item.Row, item.Column].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(21);
            }
            else if (dataType == DataType.Integer)
            {
                sheet.Cells[item.Row, item.Column].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(1);
            }
            else if (dataType == DataType.Decimal)
            {
                sheet.Cells[item.Row, item.Column].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(2);
            }
        }
Esempio n. 7
0
        public void TestDate1904WithoutSetting()
        {
            var dt1 = new DateTime(2008, 2, 29);
            var dt2 = new DateTime(1950, 11, 30);

            ExcelPackage   pck = new ExcelPackage();
            ExcelWorksheet ws  = pck.Workbook.Worksheets.Add("test");

            ws.Cells[1, 1, 2, 1].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(14);
            ws.Cells[1, 1].Value = dt1;
            ws.Cells[2, 1].Value = dt2;
            pck.Save();


            var pck2 = new ExcelPackage(pck.Stream);
            var ws2  = pck2.Workbook.Worksheets["test"];

            Assert.AreEqual(dt1, ws2.Cells[1, 1].Value);
            Assert.AreEqual(dt2, ws2.Cells[2, 1].Value);

            pck.Dispose();
            pck2.Dispose();
        }
        public EvaluationConditionalFormatRule(WorkbookEvaluator workbookEvaluator, ISheet sheet, IConditionalFormatting formatting, int formattingIndex, IConditionalFormattingRule rule, int ruleIndex, CellRangeAddress[] regions)
        {
            this.workbookEvaluator = workbookEvaluator;
            this.sheet             = sheet;
            this.formatting        = formatting;
            this.rule            = rule;
            this.formattingIndex = formattingIndex;
            this.ruleIndex       = ruleIndex;

            this.priority = rule.Priority;

            this.regions = regions;
            formula1     = rule.Formula1;
            formula2     = rule.Formula2;

            text      = rule.Text;
            lowerText = text == null ? null : text.ToLowerInvariant();

            numberFormat = rule.NumberFormat;

            @operator = (OperatorEnum)rule.ComparisonOperation;
            type      = rule.ConditionType;
        }
Esempio n. 9
0
        internal ExcelDxfStyleConditionalFormatting(XmlNamespaceManager nameSpaceManager, XmlNode topNode, ExcelStyles styles) : base(styles)
        {
            NumberFormat = new ExcelDxfNumberFormat(_styles);
            Font         = new ExcelDxfFontBase(_styles);
            Border       = new ExcelDxfBorderBase(_styles);
            Fill         = new ExcelDxfFill(_styles);
            if (topNode != null)
            {
                _helper = new XmlHelperInstance(nameSpaceManager, topNode);
                NumberFormat.NumFmtID = _helper.GetXmlNodeInt("d:numFmt/@numFmtId");
                NumberFormat.Format   = _helper.GetXmlNodeString("d:numFmt/@formatCode");
                if (NumberFormat.NumFmtID < 164 && string.IsNullOrEmpty(NumberFormat.Format))
                {
                    NumberFormat.Format = ExcelNumberFormat.GetFromBuildInFromID(NumberFormat.NumFmtID);
                }

                Font.Bold      = _helper.GetXmlNodeBoolNullable("d:font/d:b/@val");
                Font.Italic    = _helper.GetXmlNodeBoolNullable("d:font/d:i/@val");
                Font.Strike    = _helper.GetXmlNodeBoolNullable("d:font/d:strike");
                Font.Underline = GetUnderLineEnum(_helper.GetXmlNodeString("d:font/d:u/@val"));
                Font.Color     = GetColor(_helper, "d:font/d:color");

                Border.Left   = GetBorderItem(_helper, "d:border/d:left");
                Border.Right  = GetBorderItem(_helper, "d:border/d:right");
                Border.Bottom = GetBorderItem(_helper, "d:border/d:bottom");
                Border.Top    = GetBorderItem(_helper, "d:border/d:top");

                Fill.PatternType     = GetPatternTypeEnum(_helper.GetXmlNodeString("d:fill/d:patternFill/@patternType"));
                Fill.BackgroundColor = GetColor(_helper, "d:fill/d:patternFill/d:bgColor/");
                Fill.PatternColor    = GetColor(_helper, "d:fill/d:patternFill/d:fgColor/");
            }
            else
            {
                _helper = new XmlHelperInstance(nameSpaceManager);
            }
            _helper.SchemaNodeOrder = new string[] { "font", "numFmt", "fill", "border" };
        }
Esempio n. 10
0
 public NumberFormat(ExcelNumberFormat numberFormat)
 {
     _numberFormat = numberFormat;
 }