📄 namerecord.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 + -