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

📄 stringformularecord.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:   StringFormulaRecord.java

package jxl.read.biff;

import common.Assert;
import common.Logger;
import jxl.*;
import jxl.biff.*;
import jxl.biff.formula.*;

// Referenced classes of package jxl.read.biff:
//            CellValue, Record, File, SheetImpl, 
//            WorkbookParser, BOFRecord

class StringFormulaRecord extends CellValue
    implements LabelCell, FormulaData, StringFormulaCell
{

    private static Logger logger;
    private String value;
    private ExternalSheet externalSheet;
    private WorkbookMethods nameTable;
    private String formulaString;
    private byte data[];
    static Class class$jxl$read$biff$StringFormulaRecord; /* synthetic field */

    public StringFormulaRecord(Record t, File excelFile, FormattingRecords fr, ExternalSheet es, WorkbookMethods nt, SheetImpl si, WorkbookSettings ws)
    {
        super(t, fr, si);
        externalSheet = es;
        nameTable = nt;
        data = getRecord().getData();
        int pos = excelFile.getPos();
        Record nextRecord = excelFile.next();
        int count;
        for(count = 0; nextRecord.getType() != Type.STRING && count < 4; count++)
            nextRecord = excelFile.next();

        Assert.verify(count < 4, " @ " + pos);
        readString(nextRecord.getData(), ws);
    }

    public StringFormulaRecord(Record t, FormattingRecords fr, ExternalSheet es, WorkbookMethods nt, SheetImpl si)
    {
        super(t, fr, si);
        externalSheet = es;
        nameTable = nt;
        data = getRecord().getData();
        value = "";
    }

    private void readString(byte d[], WorkbookSettings ws)
    {
        int pos = 0;
        int chars = IntegerHelper.getInt(d[0], d[1]);
        if(chars == 0)
        {
            value = "";
            return;
        }
        pos += 2;
        int optionFlags = d[pos];
        pos++;
        if((optionFlags & 0xf) != optionFlags)
        {
            pos = 0;
            chars = IntegerHelper.getInt(d[0], (byte)0);
            optionFlags = d[1];
            pos = 2;
        }
        boolean extendedString = (optionFlags & 0x4) != 0;
        boolean richString = (optionFlags & 0x8) != 0;
        if(richString)
            pos += 2;
        if(extendedString)
            pos += 4;
        boolean asciiEncoding = (optionFlags & 0x1) == 0;
        if(asciiEncoding)
            value = StringHelper.getString(d, chars, pos, ws);
        else
            value = StringHelper.getUnicodeString(d, chars, pos);
    }

    public String getContents()
    {
        return value;
    }

    public String getString()
    {
        return value;
    }

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

    public byte[] getFormulaData()
        throws FormulaException
    {
        if(!getSheet().getWorkbook().getWorkbookBof().isBiff8())
        {
            throw new FormulaException(FormulaException.BIFF8_SUPPORTED);
        } else
        {
            byte d[] = new byte[data.length - 6];
            System.arraycopy(data, 6, d, 0, data.length - 6);
            return d;
        }
    }

    public String getFormula()
        throws FormulaException
    {
        if(formulaString == null)
        {
            byte tokens[] = new byte[data.length - 22];
            System.arraycopy(data, 22, tokens, 0, tokens.length);
            FormulaParser fp = new FormulaParser(tokens, this, externalSheet, nameTable, getSheet().getWorkbook().getSettings());
            fp.parse();
            formulaString = fp.getFormula();
        }
        return formulaString;
    }

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

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

⌨️ 快捷键说明

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