first commit
This commit is contained in:
77
hrmsEjb/jxl/read/biff/ExternalSheetRecord.java
Normal file
77
hrmsEjb/jxl/read/biff/ExternalSheetRecord.java
Normal file
@@ -0,0 +1,77 @@
|
||||
package jxl.read.biff;
|
||||
|
||||
import common.Logger;
|
||||
import jxl.WorkbookSettings;
|
||||
import jxl.biff.IntegerHelper;
|
||||
import jxl.biff.RecordData;
|
||||
|
||||
public class ExternalSheetRecord extends RecordData {
|
||||
private static Logger logger = Logger.getLogger(ExternalSheetRecord.class);
|
||||
|
||||
private static class Biff7 {
|
||||
private Biff7() {}
|
||||
}
|
||||
|
||||
public static Biff7 biff7 = new Biff7();
|
||||
|
||||
private XTI[] xtiArray;
|
||||
|
||||
private static class XTI {
|
||||
int supbookIndex;
|
||||
|
||||
int firstTab;
|
||||
|
||||
int lastTab;
|
||||
|
||||
XTI(int s, int f, int l) {
|
||||
this.supbookIndex = s;
|
||||
this.firstTab = f;
|
||||
this.lastTab = l;
|
||||
}
|
||||
}
|
||||
|
||||
ExternalSheetRecord(Record t, WorkbookSettings ws) {
|
||||
super(t);
|
||||
byte[] data = getRecord().getData();
|
||||
int numxtis = IntegerHelper.getInt(data[0], data[1]);
|
||||
if (data.length < numxtis * 6 + 2) {
|
||||
this.xtiArray = new XTI[0];
|
||||
logger.warn("Could not process external sheets. Formulas may be compromised.");
|
||||
return;
|
||||
}
|
||||
this.xtiArray = new XTI[numxtis];
|
||||
int pos = 2;
|
||||
for (int i = 0; i < numxtis; i++) {
|
||||
int s = IntegerHelper.getInt(data[pos], data[pos + 1]);
|
||||
int f = IntegerHelper.getInt(data[pos + 2], data[pos + 3]);
|
||||
int l = IntegerHelper.getInt(data[pos + 4], data[pos + 5]);
|
||||
this.xtiArray[i] = new XTI(s, f, l);
|
||||
pos += 6;
|
||||
}
|
||||
}
|
||||
|
||||
ExternalSheetRecord(Record t, WorkbookSettings settings, Biff7 dummy) {
|
||||
super(t);
|
||||
logger.warn("External sheet record for Biff 7 not supported");
|
||||
}
|
||||
|
||||
public int getNumRecords() {
|
||||
return (this.xtiArray != null) ? this.xtiArray.length : 0;
|
||||
}
|
||||
|
||||
public int getSupbookIndex(int index) {
|
||||
return (this.xtiArray[index]).supbookIndex;
|
||||
}
|
||||
|
||||
public int getFirstTabIndex(int index) {
|
||||
return (this.xtiArray[index]).firstTab;
|
||||
}
|
||||
|
||||
public int getLastTabIndex(int index) {
|
||||
return (this.xtiArray[index]).lastTab;
|
||||
}
|
||||
|
||||
public byte[] getData() {
|
||||
return getRecord().getData();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user