Should have been submitted with c700203 (Refactoring row-blocks record reading logic in Sheet)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@700204 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
655f100a6c
commit
382ccf456f
|
@ -83,7 +83,7 @@ public class ModelFactory implements ERFListener
|
||||||
currentmodel = new Workbook();
|
currentmodel = new Workbook();
|
||||||
break;
|
break;
|
||||||
case BOFRecord.TYPE_WORKSHEET:
|
case BOFRecord.TYPE_WORKSHEET:
|
||||||
currentmodel = new Sheet();
|
currentmodel = Sheet.createSheet();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new RuntimeException("Unsupported model type "+bof.getType());
|
throw new RuntimeException("Unsupported model type "+bof.getType());
|
||||||
|
|
|
@ -19,7 +19,10 @@ package org.apache.poi.hssf.model;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.poi.hssf.record.ArrayRecord;
|
||||||
import org.apache.poi.hssf.record.BOFRecord;
|
import org.apache.poi.hssf.record.BOFRecord;
|
||||||
|
import org.apache.poi.hssf.record.BlankRecord;
|
||||||
|
import org.apache.poi.hssf.record.BoolErrRecord;
|
||||||
import org.apache.poi.hssf.record.CalcCountRecord;
|
import org.apache.poi.hssf.record.CalcCountRecord;
|
||||||
import org.apache.poi.hssf.record.CalcModeRecord;
|
import org.apache.poi.hssf.record.CalcModeRecord;
|
||||||
import org.apache.poi.hssf.record.DVALRecord;
|
import org.apache.poi.hssf.record.DVALRecord;
|
||||||
|
@ -30,22 +33,30 @@ import org.apache.poi.hssf.record.DimensionsRecord;
|
||||||
import org.apache.poi.hssf.record.DrawingRecord;
|
import org.apache.poi.hssf.record.DrawingRecord;
|
||||||
import org.apache.poi.hssf.record.DrawingSelectionRecord;
|
import org.apache.poi.hssf.record.DrawingSelectionRecord;
|
||||||
import org.apache.poi.hssf.record.EOFRecord;
|
import org.apache.poi.hssf.record.EOFRecord;
|
||||||
|
import org.apache.poi.hssf.record.FormulaRecord;
|
||||||
import org.apache.poi.hssf.record.GridsetRecord;
|
import org.apache.poi.hssf.record.GridsetRecord;
|
||||||
import org.apache.poi.hssf.record.GutsRecord;
|
import org.apache.poi.hssf.record.GutsRecord;
|
||||||
import org.apache.poi.hssf.record.HyperlinkRecord;
|
import org.apache.poi.hssf.record.HyperlinkRecord;
|
||||||
import org.apache.poi.hssf.record.IndexRecord;
|
import org.apache.poi.hssf.record.IndexRecord;
|
||||||
import org.apache.poi.hssf.record.IterationRecord;
|
import org.apache.poi.hssf.record.IterationRecord;
|
||||||
|
import org.apache.poi.hssf.record.LabelRecord;
|
||||||
|
import org.apache.poi.hssf.record.LabelSSTRecord;
|
||||||
|
import org.apache.poi.hssf.record.NumberRecord;
|
||||||
import org.apache.poi.hssf.record.ObjRecord;
|
import org.apache.poi.hssf.record.ObjRecord;
|
||||||
import org.apache.poi.hssf.record.PaneRecord;
|
import org.apache.poi.hssf.record.PaneRecord;
|
||||||
import org.apache.poi.hssf.record.PrecisionRecord;
|
import org.apache.poi.hssf.record.PrecisionRecord;
|
||||||
import org.apache.poi.hssf.record.PrintGridlinesRecord;
|
import org.apache.poi.hssf.record.PrintGridlinesRecord;
|
||||||
import org.apache.poi.hssf.record.PrintHeadersRecord;
|
import org.apache.poi.hssf.record.PrintHeadersRecord;
|
||||||
|
import org.apache.poi.hssf.record.RKRecord;
|
||||||
import org.apache.poi.hssf.record.Record;
|
import org.apache.poi.hssf.record.Record;
|
||||||
import org.apache.poi.hssf.record.RecordBase;
|
import org.apache.poi.hssf.record.RecordBase;
|
||||||
import org.apache.poi.hssf.record.RefModeRecord;
|
import org.apache.poi.hssf.record.RefModeRecord;
|
||||||
|
import org.apache.poi.hssf.record.RowRecord;
|
||||||
import org.apache.poi.hssf.record.SCLRecord;
|
import org.apache.poi.hssf.record.SCLRecord;
|
||||||
import org.apache.poi.hssf.record.SaveRecalcRecord;
|
import org.apache.poi.hssf.record.SaveRecalcRecord;
|
||||||
import org.apache.poi.hssf.record.SelectionRecord;
|
import org.apache.poi.hssf.record.SelectionRecord;
|
||||||
|
import org.apache.poi.hssf.record.SharedFormulaRecord;
|
||||||
|
import org.apache.poi.hssf.record.TableRecord;
|
||||||
import org.apache.poi.hssf.record.TextObjectRecord;
|
import org.apache.poi.hssf.record.TextObjectRecord;
|
||||||
import org.apache.poi.hssf.record.UncalcedRecord;
|
import org.apache.poi.hssf.record.UncalcedRecord;
|
||||||
import org.apache.poi.hssf.record.UnknownRecord;
|
import org.apache.poi.hssf.record.UnknownRecord;
|
||||||
|
@ -324,7 +335,7 @@ final class RecordOrderer {
|
||||||
* It is assumed that at least one row or cell value record has been found prior to the current
|
* It is assumed that at least one row or cell value record has been found prior to the current
|
||||||
* record
|
* record
|
||||||
*/
|
*/
|
||||||
public static boolean isEndOfRowBlock(short sid) {
|
public static boolean isEndOfRowBlock(int sid) {
|
||||||
switch(sid) {
|
switch(sid) {
|
||||||
case DrawingRecord.sid:
|
case DrawingRecord.sid:
|
||||||
case DrawingSelectionRecord.sid:
|
case DrawingSelectionRecord.sid:
|
||||||
|
@ -344,4 +355,29 @@ final class RecordOrderer {
|
||||||
}
|
}
|
||||||
return PageSettingsBlock.isComponentRecord(sid);
|
return PageSettingsBlock.isComponentRecord(sid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return <code>true</code> if the specified record id normally appears in the row blocks section
|
||||||
|
* of the sheet records
|
||||||
|
*/
|
||||||
|
public static boolean isRowBlockRecord(int sid) {
|
||||||
|
switch (sid) {
|
||||||
|
case RowRecord.sid:
|
||||||
|
|
||||||
|
case BlankRecord.sid:
|
||||||
|
case BoolErrRecord.sid:
|
||||||
|
case FormulaRecord.sid:
|
||||||
|
case LabelRecord.sid:
|
||||||
|
case LabelSSTRecord.sid:
|
||||||
|
case NumberRecord.sid:
|
||||||
|
case RKRecord.sid:
|
||||||
|
|
||||||
|
case ArrayRecord.sid:
|
||||||
|
case SharedFormulaRecord.sid:
|
||||||
|
case TableRecord.sid:
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,11 +47,11 @@ public final class FormulaRecordAggregate extends RecordAggregate implements Cel
|
||||||
}
|
}
|
||||||
boolean hasStringRec = stringRec != null;
|
boolean hasStringRec = stringRec != null;
|
||||||
boolean hasCachedStringFlag = formulaRec.hasCachedResultString();
|
boolean hasCachedStringFlag = formulaRec.hasCachedResultString();
|
||||||
if (hasStringRec != hasCachedStringFlag) {
|
if (hasStringRec != hasCachedStringFlag) {
|
||||||
throw new RecordFormatException("String record was "
|
throw new RecordFormatException("String record was "
|
||||||
+ (hasStringRec ? "": "not ") + " supplied but formula record flag is "
|
+ (hasStringRec ? "": "not ") + " supplied but formula record flag is "
|
||||||
+ (hasCachedStringFlag ? "" : "not ") + " set");
|
+ (hasCachedStringFlag ? "" : "not ") + " set");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (formulaRec.isSharedFormula()) {
|
if (formulaRec.isSharedFormula()) {
|
||||||
svm.convertSharedFormulaRecord(formulaRec);
|
svm.convertSharedFormulaRecord(formulaRec);
|
||||||
|
|
Loading…
Reference in New Issue