/*********************************************************************
*
* Copyright (C) 2002 Andrew Khan
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
package jxl.write;
import java.text.DecimalFormat;
import jxl.biff.DisplayFormat;
import jxl.write.biff.NumberFormatRecord;
/**
* A custom user defined number format, which may be instantiated within user
* applications in order to present numerical values to the appropriate level
* of accuracy.
* The string format used to create a number format adheres to the standard
* java specification, and JExcelAPI makes the necessary modifications so
* that it is rendered in Excel as the nearest possible equivalent.
* Once created, this may be used within a CellFormat object, which in turn
* is a parameter passed to the constructor of the Number cell
*/
public class NumberFormat extends NumberFormatRecord implements DisplayFormat
{
/**
* Pass in to the constructor to bypass the format validation
*/
public static final NonValidatingFormat COMPLEX_FORMAT =
new NumberFormatRecord.NonValidatingFormat();
// Some format strings
/**
* Constant format string for the Euro currency symbol where it precedes
* the format
*/
public static final String CURRENCY_EURO_PREFIX = "[$�-2]";
/**
* Constant format string for the Euro currency symbol where it precedes
* the format
*/
public static final String CURRENCY_EURO_SUFFIX = "[$�-1]";
/**
* Constant format string for the UK pound sign
*/
public static final String CURRENCY_POUND = "�";
/**
* Constant format string for the Japanese Yen sign
*/
public static final String CURRENCY_JAPANESE_YEN = "[$�-411]";
/**
* Constant format string for the US Dollar sign
*/
public static final String CURRENCY_DOLLAR = "[$$-409]";
/**
* Constant format string for three digit fractions
*/
public static final String FRACTION_THREE_DIGITS = "???/???";
/**
* Constant format string for fractions as halves
*/
public static final String FRACTION_HALVES = "?/2";
/**
* Constant format string for fractions as quarter
*/
public static final String FRACTION_QUARTERS = "?/4";
/**
* Constant format string for fractions as eighths
*/
public static final String FRACTIONS_EIGHTHS = "?/8";
/**
* Constant format string for fractions as sixteenths
*/
public static final String FRACTION_SIXTEENTHS = "?/16";
/**
* Constant format string for fractions as tenths
*/
public static final String FRACTION_TENTHS = "?/10";
/**
* Constant format string for fractions as hundredths
*/
public static final String FRACTION_HUNDREDTHS = "?/100";
/**
* Constructor, taking in the Java compliant number format
*
* @param format the format string
*/
public NumberFormat(String format)
{
super(format);
// Verify that the format is valid
DecimalFormat df = new DecimalFormat(format);
}
/**
* Constructor, taking in the non-Java compliant number format. This
* may be used for currencies and more complex custom formats, which
* will not be subject to the standard validation rules.
* As there is no validation, there is a resultant risk that the
* generated Excel file will be corrupt
*
* USE THIS CONSTRUCTOR ONLY IF YOU ARE CERTAIN THAT THE NUMBER FORMAT
* YOU ARE USING IS EXCEL COMPLIANT
*
* @param format the format string
* @param dummy dummy parameter
*/
public NumberFormat(String format, NonValidatingFormat dummy)
{
super(format, dummy);
}
}
|