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

📄 namerecord.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:   NameRecord.java

package jxl.read.biff;

import common.Assert;
import common.Logger;
import java.util.ArrayList;
import jxl.WorkbookSettings;
import jxl.biff.*;

// Referenced classes of package jxl.read.biff:
//            Record

public class NameRecord extends RecordData
{
    public class NameRange
    {

        private int columnFirst;
        private int rowFirst;
        private int columnLast;
        private int rowLast;
        private int externalSheet;

        public int getFirstColumn()
        {
            return columnFirst;
        }

        public int getFirstRow()
        {
            return rowFirst;
        }

        public int getLastColumn()
        {
            return columnLast;
        }

        public int getLastRow()
        {
            return rowLast;
        }

        public int getExternalSheet()
        {
            return externalSheet;
        }

        NameRange(int s1, int c1, int r1, int c2, int r2)
        {
            columnFirst = c1;
            rowFirst = r1;
            columnLast = c2;
            rowLast = r2;
            externalSheet = s1;
        }
    }

    private static class Biff7
    {

        private Biff7()
        {
        }

        Biff7(_cls1 x0)
        {
            this();
        }
    }


    private static Logger logger;
    private String name;
    private int index;
    private int sheetRef;
    private boolean isbiff8;
    public static Biff7 biff7 = new Biff7(null);
    private static final int commandMacro = 12;
    private static final int builtIn = 32;
    private static final int cellReference = 58;
    private static final int areaReference = 59;
    private static final int subExpression = 41;
    private static final int union = 16;
    private ArrayList ranges;
    private static final String builtInNames[] = {
        "Consolidate_Area", "Auto_Open", "Auto_Close", "Extract", "Database", "Criteria", "Print_Area", "Print_Titles", "Recorder", "Data_Form", 
        "Auto_Activate", "Auto_Deactivate", "Sheet_Title", "_FilterDatabase"
    };
    static Class class$jxl$read$biff$NameRecord; /* synthetic field */

    NameRecord(Record t, WorkbookSettings ws, int ind)
    {
        super(t);
        sheetRef = 0;
        index = ind;
        isbiff8 = true;
        byte data[];
        int option;
        int length;
        ranges = new ArrayList();
        data = getRecord().getData();
        option = IntegerHelper.getInt(data[0], data[1]);
        length = data[3];
        sheetRef = IntegerHelper.getInt(data[8], data[9]);
        if((option & 0x20) != 0)
        {
            name = data[15] >= 13 ? "Builtin_" + Integer.toString(data[15], 16) : builtInNames[data[15]];
            return;
        }
        name = StringHelper.getString(data, length, 15, ws);
        if((option & 0xc) != 0)
            return;
        try
        {
            int pos = length + 15;
            if(data[pos] == 58)
            {
                int sheet = IntegerHelper.getInt(data[pos + 1], data[pos + 2]);
                int row = IntegerHelper.getInt(data[pos + 3], data[pos + 4]);
                int columnMask = IntegerHelper.getInt(data[pos + 5], data[pos + 6]);
                int column = columnMask & 0xff;
                Assert.verify((columnMask & 0xc0000) == 0);
                NameRange r = new NameRange(sheet, column, row, column, row);
                ranges.add(r);
            } else
            if(data[pos] == 59)
            {
                int sheet1 = 0;
                int r1 = 0;
                int columnMask = 0;
                int c1 = 0;
                int r2 = 0;
                int c2 = 0;
                NameRange range = null;
                for(; pos < data.length; pos += 11)
                {
                    sheet1 = IntegerHelper.getInt(data[pos + 1], data[pos + 2]);
                    r1 = IntegerHelper.getInt(data[pos + 3], data[pos + 4]);
                    r2 = IntegerHelper.getInt(data[pos + 5], data[pos + 6]);
                    columnMask = IntegerHelper.getInt(data[pos + 7], data[pos + 8]);
                    c1 = columnMask & 0xff;
                    Assert.verify((columnMask & 0xc0000) == 0);
                    columnMask = IntegerHelper.getInt(data[pos + 9], data[pos + 10]);
                    c2 = columnMask & 0xff;
                    Assert.verify((columnMask & 0xc0000) == 0);
                    range = new NameRange(sheet1, c1, r1, c2, r2);
                    ranges.add(range);
                }

            } else
            if(data[pos] == 41)
            {
                int sheet1 = 0;
                int r1 = 0;
                int columnMask = 0;
                int c1 = 0;
                int r2 = 0;
                int c2 = 0;
                NameRange range = null;
                if(pos < data.length && data[pos] != 58 && data[pos] != 59)
                    if(data[pos] == 41)
                        pos += 3;
                    else
                    if(data[pos] == 16)
                        pos++;
                do
                {
                    if(pos >= data.length)
                        break;
                    sheet1 = IntegerHelper.getInt(data[pos + 1], data[pos + 2]);
                    r1 = IntegerHelper.getInt(data[pos + 3], data[pos + 4]);
                    r2 = IntegerHelper.getInt(data[pos + 5], data[pos + 6]);
                    columnMask = IntegerHelper.getInt(data[pos + 7], data[pos + 8]);
                    c1 = columnMask & 0xff;
                    Assert.verify((columnMask & 0xc0000) == 0);
                    columnMask = IntegerHelper.getInt(data[pos + 9], data[pos + 10]);
                    c2 = columnMask & 0xff;
                    Assert.verify((columnMask & 0xc0000) == 0);
                    range = new NameRange(sheet1, c1, r1, c2, r2);
                    ranges.add(range);
                    if((pos += 11) < data.length && data[pos] != 58 && data[pos] != 59)
                        if(data[pos] == 41)
                            pos += 3;
                        else
                        if(data[pos] == 16)
                            pos++;
                } while(true);
            }
        }
        catch(Throwable t1)
        {
            logger.warn("Cannot read name");
            name = "ERROR";
        }
        return;
    }

    NameRecord(Record t, WorkbookSettings ws, int ind, Biff7 dummy)
    {
        super(t);
        sheetRef = 0;
        index = ind;
        isbiff8 = false;
        byte data[];
        int pos;
        ranges = new ArrayList();
        data = getRecord().getData();
        int length = data[3];
        sheetRef = IntegerHelper.getInt(data[8], data[9]);
        name = StringHelper.getString(data, length, 14, ws);
        pos = length + 14;
        if(pos >= data.length)
            return;
        try
        {
            if(data[pos] == 58)
            {
                int sheet = IntegerHelper.getInt(data[pos + 11], data[pos + 12]);
                int row = IntegerHelper.getInt(data[pos + 15], data[pos + 16]);
                int column = data[pos + 17];
                NameRange r = new NameRange(sheet, column, row, column, row);
                ranges.add(r);
            } else
            if(data[pos] == 59)
            {
                int sheet1 = 0;
                int r1 = 0;
                int c1 = 0;
                int r2 = 0;
                int c2 = 0;
                NameRange range = null;
                for(; pos < data.length; pos += 21)
                {
                    sheet1 = IntegerHelper.getInt(data[pos + 11], data[pos + 12]);
                    r1 = IntegerHelper.getInt(data[pos + 15], data[pos + 16]);
                    r2 = IntegerHelper.getInt(data[pos + 17], data[pos + 18]);
                    c1 = data[pos + 19];
                    c2 = data[pos + 20];
                    range = new NameRange(sheet1, c1, r1, c2, r2);
                    ranges.add(range);
                }

            } else
            if(data[pos] == 41)
            {
                int sheet1 = 0;
                int sheet2 = 0;
                int r1 = 0;
                int c1 = 0;
                int r2 = 0;
                int c2 = 0;
                NameRange range = null;
                if(pos < data.length && data[pos] != 58 && data[pos] != 59)
                    if(data[pos] == 41)
                        pos += 3;
                    else
                    if(data[pos] == 16)
                        pos++;
                do
                {
                    if(pos >= data.length)
                        break;
                    sheet1 = IntegerHelper.getInt(data[pos + 11], data[pos + 12]);
                    r1 = IntegerHelper.getInt(data[pos + 15], data[pos + 16]);
                    r2 = IntegerHelper.getInt(data[pos + 17], data[pos + 18]);
                    c1 = data[pos + 19];
                    c2 = data[pos + 20];
                    range = new NameRange(sheet1, c1, r1, c2, r2);
                    ranges.add(range);
                    if((pos += 21) < data.length && data[pos] != 58 && data[pos] != 59)
                        if(data[pos] == 41)
                            pos += 3;
                        else
                        if(data[pos] == 16)
                            pos++;
                } while(true);
            }
        }
        catch(Throwable t1)
        {
            logger.warn("Cannot read name.");
            name = "ERROR";
        }
        return;
    }

    public String getName()
    {
        return name;
    }

    public NameRange[] getRanges()
    {
        NameRange nr[] = new NameRange[ranges.size()];
        return (NameRange[])ranges.toArray(nr);
    }

    int getIndex()
    {
        return index;
    }

    public int getSheetRef()
    {
        return sheetRef;
    }

    public void setSheetRef(int i)
    {
        sheetRef = i;
    }

    public byte[] getData()
    {
        return getRecord().getData();
    }

    public boolean isBiff8()
    {
        return isbiff8;
    }

    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$NameRecord != null ? class$jxl$read$biff$NameRecord : (class$jxl$read$biff$NameRecord = class$("jxl.read.biff.NameRecord")));
    }

// Unreferenced inner classes:

/* anonymous class */
    static class _cls1
    {
    }

}

⌨️ 快捷键说明

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