/**
         * Writes out a sheet containing the various numerical formats
         *
         * @param s
         */
        private void writeNumberFormatSheet(WritableSheet s)
        {
            WritableCellFormat wrappedText = new WritableCellFormat(WritableWorkbook.ARIAL_10_PT);
            wrappedText.setWrap(true);

            s.setColumnView(0, 20);
            s.setColumnView(4, 20);
            s.setColumnView(5, 20);
            s.setColumnView(6, 20);

            // Floats
            Label l = new Label(0, 0, "+/- Pi - default format", wrappedText);
            s.addCell(l);

            Number n = new Number(1, 0, 3.1415926535);
            s.addCell(n);

            n = new Number(2, 0, -3.1415926535);
            s.addCell(n);

            l = new Label(0, 1, "+/- Pi - integer format", wrappedText);
            s.addCell(l);

            WritableCellFormat cf1 = new WritableCellFormat(NumberFormats.INTEGER);
            n = new Number(1, 1, 3.1415926535, cf1);
            s.addCell(n);

            n = new Number(2, 1, -3.1415926535, cf1);
            s.addCell(n);

            l = new Label(0, 2, "+/- Pi - float 2dps", wrappedText);
            s.addCell(l);

            WritableCellFormat cf2 = new WritableCellFormat(NumberFormats.FLOAT);
            n = new Number(1, 2, 3.1415926535, cf2);
            s.addCell(n);

            n = new Number(2, 2, -3.1415926535, cf2);
            s.addCell(n);

            l = new Label(0, 3, "+/- Pi - custom 3dps",
                          wrappedText);
            s.addCell(l);

            NumberFormat dp3 = new NumberFormat("#.###");
            WritableCellFormat dp3cell = new WritableCellFormat(dp3);
            n = new Number(1, 3, 3.1415926535, dp3cell);
            s.addCell(n);

            n = new Number(2, 3, -3.1415926535, dp3cell);
            s.addCell(n);

            l = new Label(0, 4, "+/- Pi - custom &3.14",
                          wrappedText);
            s.addCell(l);

            NumberFormat pounddp2 = new NumberFormat("&#.00");
            WritableCellFormat pounddp2cell = new WritableCellFormat(pounddp2);
            n = new Number(1, 4, 3.1415926535, pounddp2cell);
            s.addCell(n);

            n = new Number(2, 4, -3.1415926535, pounddp2cell);
            s.addCell(n);

            l = new Label(0, 5, "+/- Pi - custom Text #.### Text",
                          wrappedText);
            s.addCell(l);

            NumberFormat textdp4 = new NumberFormat("Text#.####Text");
            WritableCellFormat textdp4cell = new WritableCellFormat(textdp4);
            n = new Number(1, 5, 3.1415926535, textdp4cell);
            s.addCell(n);

            n = new Number(2, 5, -3.1415926535, textdp4cell);
            s.addCell(n);

            // Integers
            l = new Label(4, 0, "+/- Bilko default format");
            s.addCell(l);
            n = new Number(5, 0, 15042699);
            s.addCell(n);
            n = new Number(6, 0, -15042699);
            s.addCell(n);

            l = new Label(4, 1, "+/- Bilko float format");
            s.addCell(l);
            WritableCellFormat cfi1 = new WritableCellFormat(NumberFormats.FLOAT);
            n = new Number(5, 1, 15042699, cfi1);
            s.addCell(n);
            n = new Number(6, 1, -15042699, cfi1);
            s.addCell(n);

            l = new Label(4, 2, "+/- Thousands separator");
            s.addCell(l);
            WritableCellFormat cfi2 = new WritableCellFormat
              (NumberFormats.THOUSANDS_INTEGER);
            n = new Number(5, 2, 15042699, cfi2);
            s.addCell(n);
            n = new Number(6, 2, -15042699, cfi2);
            s.addCell(n);

            l = new Label(4, 3, "+/- Accounting red - added 0.01");
            s.addCell(l);
            WritableCellFormat cfi3 = new WritableCellFormat
              (NumberFormats.ACCOUNTING_RED_FLOAT);
            n = new Number(5, 3, 15042699.01, cfi3);
            s.addCell(n);
            n = new Number(6, 3, -15042699.01, cfi3);
            s.addCell(n);

            l = new Label(4, 4, "+/- Percent");
            s.addCell(l);
            WritableCellFormat cfi4 = new WritableCellFormat
              (NumberFormats.PERCENT_INTEGER);
            n = new Number(5, 4, 15042699, cfi4);
            s.addCell(n);
            n = new Number(6, 4, -15042699, cfi4);
            s.addCell(n);

            l = new Label(4, 5, "+/- Exponential - 2dps");
            s.addCell(l);
            WritableCellFormat cfi5 = new WritableCellFormat
              (NumberFormats.EXPONENTIAL);
            n = new Number(5, 5, 15042699, cfi5);
            s.addCell(n);
            n = new Number(6, 5, -15042699, cfi5);
            s.addCell(n);

            l = new Label(4, 6, "+/- Custom exponentional - 3dps", wrappedText);
            s.addCell(l);
            NumberFormat edp3 = new NumberFormat("0.000E0");
            WritableCellFormat edp3Cell = new WritableCellFormat(edp3);
            n = new Number(5, 6, 15042699, edp3Cell);
            s.addCell(n);
            n = new Number(6, 6, -15042699, edp3Cell);
            s.addCell(n);

            l = new Label(4, 7, "Custom neg brackets", wrappedText);
            s.addCell(l);
            NumberFormat negbracks = new NumberFormat("#,##0;(#,##0)");
            WritableCellFormat negbrackscell = new WritableCellFormat(negbracks);
            n = new Number(5, 7, 15042699, negbrackscell);
            s.addCell(n);
            n = new Number(6, 7, -15042699, negbrackscell);
            s.addCell(n);

            l = new Label(4, 8, "Custom neg brackets 2", wrappedText);
            s.addCell(l);
            NumberFormat negbracks2 = new NumberFormat("#,##0;(#,##0)a");
            WritableCellFormat negbrackscell2 = new WritableCellFormat(negbracks2);
            n = new Number(5, 8, 15042699, negbrackscell2);
            s.addCell(n);
            n = new Number(6, 8, -15042699, negbrackscell2);
            s.addCell(n);

            l = new Label(4, 9, "Custom percent", wrappedText);
            s.addCell(l);
            NumberFormat cuspercent = new NumberFormat("0.0%");
            WritableCellFormat cuspercentf = new WritableCellFormat(cuspercent);
            n = new Number(5, 9, 3.14159265, cuspercentf);
            s.addCell(n);

            // Booleans
            l = new Label(0, 10, "Boolean - TRUE");
            s.addCell(l);
            CSharpJExcel.Jxl.Write.Boolean b = new CSharpJExcel.Jxl.Write.Boolean(1, 10, true);
            s.addCell(b);

            l = new Label(0, 11, "Boolean - FALSE");
            s.addCell(l);
            b = new CSharpJExcel.Jxl.Write.Boolean(1, 11, false);
            s.addCell(b);

            l = new Label(0, 12, "A hidden cell->");
            s.addCell(l);
            n = new Number(1, 12, 17, WritableWorkbook.HIDDEN_STYLE);
            s.addCell(n);

            // Currencies
            l = new Label(4, 19, "Currency formats");
            s.addCell(l);

            l = new Label(4, 21, "UK Pound");
            s.addCell(l);
            NumberFormat poundCurrency = new NumberFormat(NumberFormat.CURRENCY_POUND + " #,###.00",
                               NumberFormat.COMPLEX_FORMAT);
            WritableCellFormat poundFormat = new WritableCellFormat(poundCurrency);
            n = new Number(5, 21, 12345, poundFormat);
            s.addCell(n);

            l = new Label(4, 22, "Euro 1");
            s.addCell(l);
            NumberFormat euroPrefixCurrency =
              new NumberFormat(NumberFormat.CURRENCY_EURO_PREFIX + " #,###.00",
                               NumberFormat.COMPLEX_FORMAT);
            WritableCellFormat euroPrefixFormat =
              new WritableCellFormat(euroPrefixCurrency);
            n = new Number(5, 22, 12345, euroPrefixFormat);
            s.addCell(n);

            l = new Label(4, 23, "Euro 2");
            s.addCell(l);
            NumberFormat euroSuffixCurrency =
              new NumberFormat("#,###.00" + NumberFormat.CURRENCY_EURO_SUFFIX,
                               NumberFormat.COMPLEX_FORMAT);
            WritableCellFormat euroSuffixFormat =
              new WritableCellFormat(euroSuffixCurrency);
            n = new Number(5, 23, 12345, euroSuffixFormat);
            s.addCell(n);

            l = new Label(4, 24, "Dollar");
            s.addCell(l);
            NumberFormat dollarCurrency =
              new NumberFormat(NumberFormat.CURRENCY_DOLLAR + " #,###.00",
                               NumberFormat.COMPLEX_FORMAT);
            WritableCellFormat dollarFormat =
              new WritableCellFormat(dollarCurrency);
            n = new Number(5, 24, 12345, dollarFormat);
            s.addCell(n);

            l = new Label(4, 25, "Japanese Yen");
            s.addCell(l);
            NumberFormat japaneseYenCurrency =
              new NumberFormat(NumberFormat.CURRENCY_JAPANESE_YEN + " #,###.00",
                               NumberFormat.COMPLEX_FORMAT);
            WritableCellFormat japaneseYenFormat =
              new WritableCellFormat(japaneseYenCurrency);
            n = new Number(5, 25, 12345, japaneseYenFormat);
            s.addCell(n);

            l = new Label(4, 30, "Fraction formats");
            s.addCell(l);

            l = new Label(4, 32, "One digit fraction format", wrappedText);
            s.addCell(l);

            WritableCellFormat fraction1digitformat =
              new WritableCellFormat(NumberFormats.FRACTION_ONE_DIGIT);
            n = new Number(5, 32, 3.18279, fraction1digitformat);
            s.addCell(n);

            l = new Label(4, 33, "Two digit fraction format", wrappedText);
            s.addCell(l);

            WritableCellFormat fraction2digitformat =
              new WritableCellFormat(NumberFormats.FRACTION_TWO_DIGITS);
            n = new Number(5, 33, 3.18279, fraction2digitformat);
            s.addCell(n);

            l = new Label(4, 34, "Three digit fraction format (improper)", wrappedText);
            s.addCell(l);

            NumberFormat fraction3digit1 =
              new NumberFormat(NumberFormat.FRACTION_THREE_DIGITS,
                               NumberFormat.COMPLEX_FORMAT);
            WritableCellFormat fraction3digitformat1 =
              new WritableCellFormat(fraction3digit1);
            n = new Number(5, 34, 3.18927, fraction3digitformat1);
            s.addCell(n);

            l = new Label(4, 35, "Three digit fraction format (proper)", wrappedText);
            s.addCell(l);

            NumberFormat fraction3digit2 =
              new NumberFormat("# " + NumberFormat.FRACTION_THREE_DIGITS,
                               NumberFormat.COMPLEX_FORMAT);
            WritableCellFormat fraction3digitformat2 =
              new WritableCellFormat(fraction3digit2);
            n = new Number(5, 35, 3.18927, fraction3digitformat2);
            s.addCell(n);

            // Lots of numbers
            for (int row = 0; row < 100; row++)
                {
                for (int col = 8; col < 108; col++)
                    {
                    n = new Number(col, row, col + row);
                    s.addCell(n);
                    }
                }

            // Lots of numbers
            for (int row = 101; row < 3000; row++)
                {
                for (int col = 0; col < 25; col++)
                    {
                    n = new Number(col, row, col + row);
                    s.addCell(n);
                    }
                }
        }
 /**
  * Copy constructor used for deep copying
  *
  * @param col the column
  * @param row the row
  * @param b the cell to copy
  */
 protected Boolean(int col,int row,Boolean b)
     : base(col,row,b)
 {
 }