コード例 #1
0
        public void TestPopulateExisting()
        {
            XSSFWorkbook workbook = XSSFTestDataSamples.OpenSampleWorkbook(testFile);

            Assert.IsNotNull(workbook.GetStylesSource());

            StylesTable st = workbook.GetStylesSource();

            Assert.AreEqual(11, st.GetXfsSize());
            Assert.AreEqual(1, st.GetStyleXfsSize());
            Assert.AreEqual(8, st.GetNumberFormatSize());

            int nf1 = st.PutNumberFormat("YYYY-mm-dd");
            int nf2 = st.PutNumberFormat("YYYY-mm-DD");

            Assert.AreEqual(nf1, st.PutNumberFormat("YYYY-mm-dd"));

            st = ((XSSFWorkbook)XSSFTestDataSamples.WriteOutAndReadBack(workbook)).GetStylesSource();

            Assert.AreEqual(11, st.GetXfsSize());
            Assert.AreEqual(1, st.GetStyleXfsSize());
            Assert.AreEqual(10, st.GetNumberFormatSize());

            Assert.AreEqual("YYYY-mm-dd", st.GetNumberFormatAt(nf1));
            Assert.AreEqual(nf1, st.PutNumberFormat("YYYY-mm-dd"));
            Assert.AreEqual(nf2, st.PutNumberFormat("YYYY-mm-DD"));
        }
コード例 #2
0
        public void TestPopulateNew()
        {
            XSSFWorkbook wb = new XSSFWorkbook();
            StylesTable  st = wb.GetStylesSource();

            Assert.IsNotNull(st.GetCTStylesheet());
            Assert.AreEqual(1, st.GetXfsSize());
            Assert.AreEqual(1, st.GetStyleXfsSize());
            Assert.AreEqual(0, st.GetNumberFormatSize());

            int nf1 = st.PutNumberFormat("yyyy-mm-dd");
            int nf2 = st.PutNumberFormat("yyyy-mm-DD");

            Assert.AreEqual(nf1, st.PutNumberFormat("yyyy-mm-dd"));

            st.PutStyle(new XSSFCellStyle(st));

            // Save and re-load
            st = ((XSSFWorkbook)XSSFTestDataSamples.WriteOutAndReadBack(wb)).GetStylesSource();

            Assert.IsNotNull(st.GetCTStylesheet());
            Assert.AreEqual(2, st.GetXfsSize());
            Assert.AreEqual(1, st.GetStyleXfsSize());
            Assert.AreEqual(2, st.GetNumberFormatSize());

            Assert.AreEqual("yyyy-mm-dd", st.GetNumberFormatAt(nf1));
            Assert.AreEqual(nf1, st.PutNumberFormat("yyyy-mm-dd"));
            Assert.AreEqual(nf2, st.PutNumberFormat("yyyy-mm-DD"));
        }
コード例 #3
0
        public void decreaseUpperLimitBelowCurrentNumDataFormats()
        {
            XSSFWorkbook wb = new XSSFWorkbook();

            try
            {
                StylesTable styles = wb.GetStylesSource();
                styles.PutNumberFormat(customDataFormat);

                // Try decreasing the upper limit below the current number of formats
                try
                {
                    styles.MaxNumberOfDataFormats = (0);
                    Assert.Fail("Expected to raise InvalidOperationException");
                }
                catch (InvalidOperationException e)
                {
                    if (e.Message.StartsWith("Cannot set the maximum number of data formats less than the current quantity."))
                    {
                        // expected
                    }
                    else
                    {
                        throw e;
                    }
                }
            }
            finally
            {
                wb.Close();
            }
        }
コード例 #4
0
        public void addDataFormatsBeyondUpperLimit()
        {
            XSSFWorkbook wb = new XSSFWorkbook();

            try
            {
                StylesTable styles = wb.GetStylesSource();
                styles.MaxNumberOfDataFormats = (0);

                // Try adding a format beyond the upper limit
                try
                {
                    styles.PutNumberFormat("\"test \"0");
                    Assert.Fail("Expected to raise InvalidOperationException");
                }
                catch (InvalidOperationException e)
                {
                    if (e.Message.StartsWith("The maximum number of Data Formats was exceeded."))
                    {
                        // expected
                    }
                    else
                    {
                        throw e;
                    }
                }
            }
            finally
            {
                wb.Close();
            }
        }