⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readformularecord.java

📁 实现JAVA界面的代码GWT
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   ReadFormulaRecord.java

package jxl.write.biff;

import common.Assert;
import common.Logger;
import jxl.*;
import jxl.biff.*;
import jxl.biff.formula.FormulaException;
import jxl.biff.formula.FormulaParser;
import jxl.write.WritableCell;

// Referenced classes of package jxl.write.biff:
//            CellValue, FormulaRecord, WritableSheetImpl, WritableWorkbookImpl, 
//            SharedStrings

class ReadFormulaRecord extends CellValue
    implements FormulaData
{

    private static Logger logger;
    private FormulaData formula;
    private FormulaParser parser;
    static Class class$jxl$write$biff$ReadFormulaRecord; /* synthetic field */

    protected ReadFormulaRecord(FormulaData f)
    {
        super(Type.FORMULA, f);
        formula = f;
    }

    protected final byte[] getCellData()
    {
        return super.getData();
    }

    protected byte[] handleFormulaException()
    {
        byte expressiondata[] = null;
        byte celldata[] = super.getData();
        WritableWorkbookImpl w = getSheet().getWorkbook();
        parser = new FormulaParser(getContents(), w, w, w.getSettings());
        try
        {
            parser.parse();
        }
        catch(FormulaException e2)
        {
            logger.warn(e2.getMessage());
            parser = new FormulaParser("\"ERROR\"", w, w, w.getSettings());
            try
            {
                parser.parse();
            }
            catch(FormulaException e3)
            {
                Assert.verify(false);
            }
        }
        byte formulaBytes[] = parser.getBytes();
        expressiondata = new byte[formulaBytes.length + 16];
        IntegerHelper.getTwoBytes(formulaBytes.length, expressiondata, 14);
        System.arraycopy(formulaBytes, 0, expressiondata, 16, formulaBytes.length);
        expressiondata[8] |= 0x2;
        byte data[] = new byte[celldata.length + expressiondata.length];
        System.arraycopy(celldata, 0, data, 0, celldata.length);
        System.arraycopy(expressiondata, 0, data, celldata.length, expressiondata.length);
        return data;
    }

    public byte[] getData()
    {
        byte celldata[];
        celldata = super.getData();
        byte expressiondata[] = null;
        byte data[];
        byte expressiondata[];
        if(parser == null)
        {
            expressiondata = formula.getFormulaData();
        } else
        {
            byte formulaBytes[] = parser.getBytes();
            expressiondata = new byte[formulaBytes.length + 16];
            IntegerHelper.getTwoBytes(formulaBytes.length, expressiondata, 14);
            System.arraycopy(formulaBytes, 0, expressiondata, 16, formulaBytes.length);
        }
        expressiondata[8] |= 0x2;
        data = new byte[celldata.length + expressiondata.length];
        System.arraycopy(celldata, 0, data, 0, celldata.length);
        System.arraycopy(expressiondata, 0, data, celldata.length, expressiondata.length);
        return data;
        FormulaException e;
        e;
        logger.warn(CellReferenceHelper.getCellReference(getColumn(), getRow()) + " " + e.getMessage());
        return handleFormulaException();
    }

    public CellType getType()
    {
        return formula.getType();
    }

    public String getContents()
    {
        return formula.getContents();
    }

    public byte[] getFormulaData()
        throws FormulaException
    {
        byte d[] = formula.getFormulaData();
        byte data[] = new byte[d.length];
        System.arraycopy(d, 0, data, 0, d.length);
        data[8] |= 0x2;
        return data;
    }

    public WritableCell copyTo(int col, int row)
    {
        return new FormulaRecord(col, row, this);
    }

    void setCellDetails(FormattingRecords fr, SharedStrings ss, WritableSheetImpl s)
    {
        super.setCellDetails(fr, ss, s);
        s.getWorkbook().addRCIRCell(this);
    }

    void columnInserted(Sheet s, int sheetIndex, int col)
    {
        try
        {
            if(parser == null)
            {
                byte formulaData[] = formula.getFormulaData();
                byte formulaBytes[] = new byte[formulaData.length - 16];
                System.arraycopy(formulaData, 16, formulaBytes, 0, formulaBytes.length);
                parser = new FormulaParser(formulaBytes, this, getSheet().getWorkbook(), getSheet().getWorkbook(), getSheet().getWorkbookSettings());
                parser.parse();
            }
            parser.columnInserted(sheetIndex, col, s == getSheet());
        }
        catch(FormulaException e)
        {
            logger.warn("cannot insert column within formula:  " + e.getMessage());
        }
    }

    void columnRemoved(Sheet s, int sheetIndex, int col)
    {
        try
        {
            if(parser == null)
            {
                byte formulaData[] = formula.getFormulaData();
                byte formulaBytes[] = new byte[formulaData.length - 16];
                System.arraycopy(formulaData, 16, formulaBytes, 0, formulaBytes.length);
                parser = new FormulaParser(formulaBytes, this, getSheet().getWorkbook(), getSheet().getWorkbook(), getSheet().getWorkbookSettings());
                parser.parse();
            }
            parser.columnRemoved(sheetIndex, col, s == getSheet());
        }
        catch(FormulaException e)
        {
            logger.warn("cannot remove column within formula:  " + e.getMessage());
        }
    }

    void rowInserted(Sheet s, int sheetIndex, int row)
    {
        try
        {
            if(parser == null)
            {
                byte formulaData[] = formula.getFormulaData();
                byte formulaBytes[] = new byte[formulaData.length - 16];
                System.arraycopy(formulaData, 16, formulaBytes, 0, formulaBytes.length);
                parser = new FormulaParser(formulaBytes, this, getSheet().getWorkbook(), getSheet().getWorkbook(), getSheet().getWorkbookSettings());
                parser.parse();
            }
            parser.rowInserted(sheetIndex, row, s == getSheet());
        }
        catch(FormulaException e)
        {
            logger.warn("cannot insert row within formula:  " + e.getMessage());
        }
    }

    void rowRemoved(Sheet s, int sheetIndex, int row)
    {
        try
        {
            if(parser == null)
            {
                byte formulaData[] = formula.getFormulaData();
                byte formulaBytes[] = new byte[formulaData.length - 16];
                System.arraycopy(formulaData, 16, formulaBytes, 0, formulaBytes.length);
                parser = new FormulaParser(formulaBytes, this, getSheet().getWorkbook(), getSheet().getWorkbook(), getSheet().getWorkbookSettings());
                parser.parse();
            }
            parser.rowRemoved(sheetIndex, row, s == getSheet());
        }
        catch(FormulaException e)
        {
            logger.warn("cannot remove row within formula:  " + e.getMessage());
        }
    }

    protected FormulaData getReadFormula()
    {
        return formula;
    }

    public String getFormula()
        throws FormulaException
    {
        return ((FormulaCell)formula).getFormula();
    }

    static Class class$(String x0)
    {
        return Class.forName(x0);
        ClassNotFoundException x1;
        x1;
        throw new NoClassDefFoundError(x1.getMessage());
    }

    static 
    {
        logger = Logger.getLogger(class$jxl$write$biff$ReadFormulaRecord != null ? class$jxl$write$biff$ReadFormulaRecord : (class$jxl$write$biff$ReadFormulaRecord = class$("jxl.write.biff.ReadFormulaRecord")));
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -