Methods Summary |
---|
public int | addBSERecord(org.apache.poi.ddf.EscherBSERecord e)
createDrawingGroup();
// maybe we don't need that as an instance variable anymore
escherBSERecords.add( e );
int dgLoc = findFirstRecordLocBySid(DrawingGroupRecord.sid);
DrawingGroupRecord drawingGroup = (DrawingGroupRecord) getRecords().get( dgLoc );
EscherContainerRecord dggContainer = (EscherContainerRecord) drawingGroup.getEscherRecord( 0 );
EscherContainerRecord bstoreContainer;
if (dggContainer.getChild( 1 ).getRecordId() == EscherContainerRecord.BSTORE_CONTAINER )
{
bstoreContainer = (EscherContainerRecord) dggContainer.getChild( 1 );
}
else
{
bstoreContainer = new EscherContainerRecord();
bstoreContainer.setRecordId( EscherContainerRecord.BSTORE_CONTAINER );
dggContainer.getChildRecords().add( 1, bstoreContainer );
}
bstoreContainer.setOptions( (short) ( (escherBSERecords.size() << 4) | 0xF ) );
bstoreContainer.addChildRecord( e );
return escherBSERecords.size();
|
public org.apache.poi.hssf.record.NameRecord | addName(org.apache.poi.hssf.record.NameRecord name)creates new name
// Not the most efficient way but the other way was causing too many bugs
int idx = findFirstRecordLocBySid(ExternSheetRecord.sid);
if (idx == -1) idx = findFirstRecordLocBySid(SupBookRecord.sid);
if (idx == -1) idx = findFirstRecordLocBySid(CountryRecord.sid);
records.add(idx+names.size()+1, name);
names.add(name);
return name;
|
public int | addSSTString(org.apache.poi.hssf.record.UnicodeString string)Adds a string to the SST table and returns its index (if its a duplicate
just returns its index and update the counts) ASSUMES compressed unicode
(meaning 8bit)
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "insert to sst string='", string);
if (sst == null) {
insertSST();
}
return sst.addString(string);
|
private short | addSheetIndexToExternSheet(short sheetNumber)
short result;
ExternSheetSubRecord record = new ExternSheetSubRecord();
record.setIndexToFirstSupBook(sheetNumber);
record.setIndexToLastSupBook(sheetNumber);
externSheet.addREFRecord(record);
externSheet.setNumOfREFStructures((short)(externSheet.getNumOfREFStructures() + 1));
result = (short)(externSheet.getNumOfREFStructures() - 1);
return result;
|
public short | checkExternSheet(int sheetNumber)returns the extern sheet number for specific sheet number ,
if this sheet doesn't exist in extern sheet , add it
int i = 0;
boolean flag = false;
short result = 0;
if (externSheet == null) {
externSheet = createExternSheet();
}
//Trying to find reference to this sheet
while (i < externSheet.getNumOfREFStructures() && !flag){
ExternSheetSubRecord record = externSheet.getREFRecordAt(i);
if (record.getIndexToFirstSupBook() == sheetNumber &&
record.getIndexToLastSupBook() == sheetNumber){
flag = true;
result = (short) i;
}
++i;
}
//We Havent found reference to this sheet
if (!flag) {
result = addSheetIndexToExternSheet((short) sheetNumber);
}
return result;
|
private void | checkSheets(int sheetnum)if we're trying to address one more sheet than we have, go ahead and add it! if we're
trying to address >1 more than we have throw an exception!
if ((boundsheets.size()) <= sheetnum) { // if we're short one add another..
if ((boundsheets.size() + 1) <= sheetnum) {
throw new RuntimeException("Sheet number out of bounds!");
}
BoundSheetRecord bsr = (BoundSheetRecord ) createBoundSheet(sheetnum);
records.add(records.getBspos()+1, bsr);
records.setBspos( records.getBspos() + 1 );
boundsheets.add(bsr);
fixTabIdRecord();
}
|
protected org.apache.poi.hssf.record.Record | createBOF()creates the BOF record
BOFRecord retval = new BOFRecord();
retval.setVersion(( short ) 0x600);
retval.setType(( short ) 5);
retval.setBuild(( short ) 0x10d3);
// retval.setBuild((short)0x0dbb);
retval.setBuildYear(( short ) 1996);
retval.setHistoryBitMask(0x41); // was c1 before verify
retval.setRequiredVersion(0x6);
return retval;
|
protected org.apache.poi.hssf.record.Record | createBackup()creates the Backup record with backup set to 0. (loose the data, who cares)
BackupRecord retval = new BackupRecord();
retval.setBackup(
( short ) 0); // by default DONT save backups of files...just loose data
return retval;
|
protected org.apache.poi.hssf.record.Record | createBookBool()creates the BookBool record with saveLinkValues set to 0. (don't save link values)
BookBoolRecord retval = new BookBoolRecord();
retval.setSaveLinkValues(( short ) 0);
return retval;
|
protected org.apache.poi.hssf.record.Record | createBoundSheet(int id)create a "bound sheet" or "bundlesheet" (depending who you ask) record
Always sets the sheet's bof to 0. You'll need to set that yourself. // 1,2,3 sheets
BoundSheetRecord retval = new BoundSheetRecord();
switch (id) {
case 0 :
retval.setPositionOfBof(0x0); // should be set later
retval.setOptionFlags(( short ) 0);
retval.setSheetnameLength(( byte ) 0x6);
retval.setCompressedUnicodeFlag(( byte ) 0);
retval.setSheetname("Sheet1");
break;
case 1 :
retval.setPositionOfBof(0x0); // should be set later
retval.setOptionFlags(( short ) 0);
retval.setSheetnameLength(( byte ) 0x6);
retval.setCompressedUnicodeFlag(( byte ) 0);
retval.setSheetname("Sheet2");
break;
case 2 :
retval.setPositionOfBof(0x0); // should be set later
retval.setOptionFlags(( short ) 0);
retval.setSheetnameLength(( byte ) 0x6);
retval.setCompressedUnicodeFlag(( byte ) 0);
retval.setSheetname("Sheet3");
break;
}
return retval;
|
public org.apache.poi.hssf.record.NameRecord | createBuiltInName(byte builtInName, int index)Generates a NameRecord to represent a built-in region
if (index == -1 || index+1 > (int)Short.MAX_VALUE)
throw new IllegalArgumentException("Index is not valid ["+index+"]");
NameRecord name = new NameRecord(builtInName, (short)(index));
addName(name);
return name;
|
public org.apache.poi.hssf.record.ExtendedFormatRecord | createCellXF()creates a new Cell-type Extneded Format Record and adds it to the end of
ExtendedFormatRecords collection
ExtendedFormatRecord xf = createExtendedFormat();
records.add(records.getXfpos()+1, xf);
records.setXfpos( records.getXfpos() + 1 );
numxfs++;
return xf;
|
protected org.apache.poi.hssf.record.Record | createCodepage()creates the Codepage record containing the constant stored in CODEPAGE
CodepageRecord retval = new CodepageRecord();
retval.setCodepage(CODEPAGE);
return retval;
|
protected org.apache.poi.hssf.record.Record | createCountry()Creates the Country record with the default country set to 1
and current country set to 7 in case of russian locale ("ru_RU") and 1 otherwise // what a novel idea, create your own!
CountryRecord retval = new CountryRecord();
retval.setDefaultCountry(( short ) 1);
// from Russia with love ;)
if ( Locale.getDefault().toString().equals( "ru_RU" ) ) {
retval.setCurrentCountry(( short ) 7);
}
else {
retval.setCurrentCountry(( short ) 1);
}
return retval;
|
protected org.apache.poi.hssf.record.Record | createDSF()creates the DSF record containing a 0 since HSSF can't even create Dual Stream Files
DSFRecord retval = new DSFRecord();
retval.setDsf(
( short ) 0); // we don't even support double stream files
return retval;
|
protected org.apache.poi.hssf.record.Record | createDateWindow1904()creates the DateWindow1904 record with windowing set to 0. (don't window)
DateWindow1904Record retval = new DateWindow1904Record();
retval.setWindowing(
( short ) 0); // don't EVER use 1904 date windowing...tick tock..
return retval;
|
public void | createDrawingGroup()Creates a drawing group record. If it already exists then it's modified.
if (drawingManager == null)
{
EscherContainerRecord dggContainer = new EscherContainerRecord();
EscherDggRecord dgg = new EscherDggRecord();
EscherOptRecord opt = new EscherOptRecord();
EscherSplitMenuColorsRecord splitMenuColors = new EscherSplitMenuColorsRecord();
dggContainer.setRecordId((short) 0xF000);
dggContainer.setOptions((short) 0x000F);
dgg.setRecordId(EscherDggRecord.RECORD_ID);
dgg.setOptions((short)0x0000);
dgg.setShapeIdMax(1024);
dgg.setNumShapesSaved(0);
dgg.setDrawingsSaved(0);
dgg.setFileIdClusters(new EscherDggRecord.FileIdCluster[] {} );
drawingManager = new DrawingManager2(dgg);
EscherContainerRecord bstoreContainer = null;
if (escherBSERecords.size() > 0)
{
bstoreContainer = new EscherContainerRecord();
bstoreContainer.setRecordId( EscherContainerRecord.BSTORE_CONTAINER );
bstoreContainer.setOptions( (short) ( (escherBSERecords.size() << 4) | 0xF ) );
for ( Iterator iterator = escherBSERecords.iterator(); iterator.hasNext(); )
{
EscherRecord escherRecord = (EscherRecord) iterator.next();
bstoreContainer.addChildRecord( escherRecord );
}
}
opt.setRecordId((short) 0xF00B);
opt.setOptions((short) 0x0033);
opt.addEscherProperty( new EscherBoolProperty(EscherProperties.TEXT__SIZE_TEXT_TO_FIT_SHAPE, 524296) );
opt.addEscherProperty( new EscherRGBProperty(EscherProperties.FILL__FILLCOLOR, 0x08000041) );
opt.addEscherProperty( new EscherRGBProperty(EscherProperties.LINESTYLE__COLOR, 134217792) );
splitMenuColors.setRecordId((short) 0xF11E);
splitMenuColors.setOptions((short) 0x0040);
splitMenuColors.setColor1(0x0800000D);
splitMenuColors.setColor2(0x0800000C);
splitMenuColors.setColor3(0x08000017);
splitMenuColors.setColor4(0x100000F7);
dggContainer.addChildRecord(dgg);
if (bstoreContainer != null)
dggContainer.addChildRecord( bstoreContainer );
dggContainer.addChildRecord(opt);
dggContainer.addChildRecord(splitMenuColors);
int dgLoc = findFirstRecordLocBySid(DrawingGroupRecord.sid);
if (dgLoc == -1)
{
DrawingGroupRecord drawingGroup = new DrawingGroupRecord();
drawingGroup.addEscherRecord(dggContainer);
int loc = findFirstRecordLocBySid(CountryRecord.sid);
getRecords().add(loc+1, drawingGroup);
}
else
{
DrawingGroupRecord drawingGroup = new DrawingGroupRecord();
drawingGroup.addEscherRecord(dggContainer);
getRecords().set(dgLoc, drawingGroup);
}
}
|
protected org.apache.poi.hssf.record.Record | createEOF()creates the EOF record
return new EOFRecord();
|
protected org.apache.poi.hssf.record.Record | createExtendedFormat(int id)Creates an ExtendedFormatRecord object // we'll need multiple editions
ExtendedFormatRecord retval = new ExtendedFormatRecord();
switch (id) {
case 0 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 1 :
retval.setFontIndex(( short ) 1);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 2 :
retval.setFontIndex(( short ) 1);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 3 :
retval.setFontIndex(( short ) 2);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 4 :
retval.setFontIndex(( short ) 2);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 5 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 6 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 7 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 8 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 9 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 10 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 11 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 12 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 13 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 14 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff400);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
// cell records
case 15 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0);
retval.setCellOptions(( short ) 0x1);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0x0);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
// style
case 16 :
retval.setFontIndex(( short ) 1);
retval.setFormatIndex(( short ) 0x2b);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff800);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 17 :
retval.setFontIndex(( short ) 1);
retval.setFormatIndex(( short ) 0x29);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff800);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 18 :
retval.setFontIndex(( short ) 1);
retval.setFormatIndex(( short ) 0x2c);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff800);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 19 :
retval.setFontIndex(( short ) 1);
retval.setFormatIndex(( short ) 0x2a);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff800);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 20 :
retval.setFontIndex(( short ) 1);
retval.setFormatIndex(( short ) 0x9);
retval.setCellOptions(( short ) 0xfffffff5);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0xfffff800);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
// unused from this point down
case 21 :
retval.setFontIndex(( short ) 5);
retval.setFormatIndex(( short ) 0x0);
retval.setCellOptions(( short ) 0x1);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0x800);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 22 :
retval.setFontIndex(( short ) 6);
retval.setFormatIndex(( short ) 0x0);
retval.setCellOptions(( short ) 0x1);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0x5c00);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 23 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0x31);
retval.setCellOptions(( short ) 0x1);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0x5c00);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 24 :
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0x8);
retval.setCellOptions(( short ) 0x1);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0x5c00);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
case 25 :
retval.setFontIndex(( short ) 6);
retval.setFormatIndex(( short ) 0x8);
retval.setCellOptions(( short ) 0x1);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0x5c00);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
break;
}
return retval;
|
protected org.apache.poi.hssf.record.ExtendedFormatRecord | createExtendedFormat()creates an default cell type ExtendedFormatRecord object.
ExtendedFormatRecord retval = new ExtendedFormatRecord();
retval.setFontIndex(( short ) 0);
retval.setFormatIndex(( short ) 0x0);
retval.setCellOptions(( short ) 0x1);
retval.setAlignmentOptions(( short ) 0x20);
retval.setIndentionOptions(( short ) 0);
retval.setBorderOptions(( short ) 0);
retval.setPaletteOptions(( short ) 0);
retval.setAdtlPaletteOptions(( short ) 0);
retval.setFillPaletteOptions(( short ) 0x20c0);
retval.setTopBorderPaletteIdx(HSSFColor.BLACK.index);
retval.setBottomBorderPaletteIdx(HSSFColor.BLACK.index);
retval.setLeftBorderPaletteIdx(HSSFColor.BLACK.index);
retval.setRightBorderPaletteIdx(HSSFColor.BLACK.index);
return retval;
|
protected org.apache.poi.hssf.record.Record | createExtendedSST()Creates the ExtendedSST record with numstrings per bucket set to 0x8. HSSF
doesn't yet know what to do with this thing, but we create it with nothing in
it hardly just to make Excel happy and our sheets look like Excel's
ExtSSTRecord retval = new ExtSSTRecord();
retval.setNumStringsPerBucket(( short ) 0x8);
return retval;
|
protected org.apache.poi.hssf.record.ExternSheetRecord | createExternSheet()creates a new extern sheet record
ExternSheetRecord externSheet = new ExternSheetRecord();
int idx = findFirstRecordLocBySid(CountryRecord.sid);
records.add(idx+1, externSheet);
// records.add(records.supbookpos + 1 , rec);
//We also adds the supBook for internal reference
SupBookRecord supbook = new SupBookRecord();
supbook.setNumberOfSheets((short)getNumSheets());
//supbook.setFlag();
records.add(idx+1, supbook);
// records.add(records.supbookpos + 1 , supbook);
return externSheet;
|
protected org.apache.poi.hssf.record.Record | createFnGroupCount()creates the FnGroupCount record containing the Magic number constant of 14.
FnGroupCountRecord retval = new FnGroupCountRecord();
retval.setCount(( short ) 14);
return retval;
|
protected org.apache.poi.hssf.record.Record | createFont()creates a Font record with the following magic values:
fontheight = 0xc8
attributes = 0x0
color palette index = 0x7fff
bold weight = 0x190
Font Name Length = 5
Font Name = Arial
FontRecord retval = new FontRecord();
retval.setFontHeight(( short ) 0xc8);
retval.setAttributes(( short ) 0x0);
retval.setColorPaletteIndex(( short ) 0x7fff);
retval.setBoldWeight(( short ) 0x190);
retval.setFontNameLength(( byte ) 5);
retval.setFontName("Arial");
return retval;
|
protected org.apache.poi.hssf.record.Record | createFormat(int id)Creates a FormatRecord object // we'll need multiple editions for
FormatRecord retval = new FormatRecord(); // the differnt formats
switch (id) {
case 0 :
retval.setIndexCode(( short ) 5);
retval.setFormatStringLength(( byte ) 0x17);
retval.setFormatString("\"$\"#,##0_);\\(\"$\"#,##0\\)");
break;
case 1 :
retval.setIndexCode(( short ) 6);
retval.setFormatStringLength(( byte ) 0x1c);
retval.setFormatString("\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)");
break;
case 2 :
retval.setIndexCode(( short ) 7);
retval.setFormatStringLength(( byte ) 0x1d);
retval.setFormatString("\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)");
break;
case 3 :
retval.setIndexCode(( short ) 8);
retval.setFormatStringLength(( byte ) 0x22);
retval.setFormatString(
"\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)");
break;
case 4 :
retval.setIndexCode(( short ) 0x2a);
retval.setFormatStringLength(( byte ) 0x32);
retval.setFormatString(
"_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)");
break;
case 5 :
retval.setIndexCode(( short ) 0x29);
retval.setFormatStringLength(( byte ) 0x29);
retval.setFormatString(
"_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)");
break;
case 6 :
retval.setIndexCode(( short ) 0x2c);
retval.setFormatStringLength(( byte ) 0x3a);
retval.setFormatString(
"_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)");
break;
case 7 :
retval.setIndexCode(( short ) 0x2b);
retval.setFormatStringLength(( byte ) 0x31);
retval.setFormatString(
"_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)");
break;
}
return retval;
|
public short | createFormat(java.lang.String format)Creates a FormatRecord, inserts it, and returns the index code.
// ++xfpos; //These are to ensure that positions are updated properly
// ++palettepos;
// ++bspos;
FormatRecord rec = new FormatRecord();
maxformatid = maxformatid >= (short) 0xa4 ? (short) ( maxformatid + 1 ) : (short) 0xa4; //Starting value from M$ empiracle study.
rec.setIndexCode( maxformatid );
rec.setFormatStringLength( (byte) format.length() );
rec.setFormatString( format );
int pos = 0;
while ( pos < records.size() && records.get( pos ).getSid() != FormatRecord.sid )
pos++;
pos += formats.size();
formats.add( rec );
records.add( pos, rec );
return maxformatid;
|
protected org.apache.poi.hssf.record.Record | createHideObj()creates the HideObj record with hide object set to 0. (don't hide)
HideObjRecord retval = new HideObjRecord();
retval.setHideObj(( short ) 0); // by default set hide object off
return retval;
|
protected org.apache.poi.hssf.record.Record | createInterfaceEnd()creates the InterfaceEnd record
return new InterfaceEndRecord();
|
protected org.apache.poi.hssf.record.Record | createInterfaceHdr()creates the InterfaceHdr record
InterfaceHdrRecord retval = new InterfaceHdrRecord();
retval.setCodepage(CODEPAGE);
return retval;
|
protected org.apache.poi.hssf.record.Record | createMMS()creates an MMS record
MMSRecord retval = new MMSRecord();
retval.setAddMenuCount(( byte ) 0);
retval.setDelMenuCount(( byte ) 0);
return retval;
|
public org.apache.poi.hssf.record.NameRecord | createName()creates new name
NameRecord name = new NameRecord();
// Not the most efficient way but the other way was causing too many bugs
int idx = findFirstRecordLocBySid(ExternSheetRecord.sid);
if (idx == -1) idx = findFirstRecordLocBySid(SupBookRecord.sid);
if (idx == -1) idx = findFirstRecordLocBySid(CountryRecord.sid);
records.add(idx+names.size()+1, name);
names.add(name);
return name;
|
public org.apache.poi.hssf.record.FontRecord | createNewFont()creates a new font record and adds it to the "font table". This causes the
boundsheets to move down one, extended formats to move down (so this function moves
those pointers as well)
FontRecord rec = ( FontRecord ) createFont();
records.add(records.getFontpos()+1, rec);
records.setFontpos( records.getFontpos() + 1 );
numfonts++;
return rec;
|
protected org.apache.poi.hssf.record.PaletteRecord | createPalette()Creates a palette record initialized to the default palette
return new PaletteRecord();
|
protected org.apache.poi.hssf.record.Record | createPassword()creates the Password record with password set to 0.
PasswordRecord retval = new PasswordRecord();
retval.setPassword(( short ) 0); // no password by default!
return retval;
|
protected org.apache.poi.hssf.record.Record | createPasswordRev4()creates the PasswordRev4 record with password set to 0.
PasswordRev4Record retval = new PasswordRev4Record();
retval.setPassword(( short ) 0); // no password by default!
return retval;
|
protected org.apache.poi.hssf.record.Record | createPrecision()creates the Precision record with precision set to true. (full precision)
PrecisionRecord retval = new PrecisionRecord();
retval.setFullPrecision(
true); // always use real numbers in calculations!
return retval;
|
protected org.apache.poi.hssf.record.Record | createProtect()creates the Protect record with protect set to false.
ProtectRecord retval = new ProtectRecord();
retval.setProtect(
false); // by default even when we support it we won't
return retval; // want it to be protected
|
protected org.apache.poi.hssf.record.Record | createProtectionRev4()creates the ProtectionRev4 record with protect set to false.
ProtectionRev4Record retval = new ProtectionRev4Record();
retval.setProtect(false);
return retval;
|
protected org.apache.poi.hssf.record.Record | createRefreshAll()creates the RefreshAll record with refreshAll set to true. (refresh all calcs)
RefreshAllRecord retval = new RefreshAllRecord();
retval.setRefreshAll(false);
return retval;
|
protected org.apache.poi.hssf.record.Record | createSST()Creates the SST record with no strings and the unique/num string set to 0
return new SSTRecord();
|
protected org.apache.poi.hssf.record.Record | createStyle(int id)Creates a StyleRecord object // we'll need multiple editions
StyleRecord retval = new StyleRecord();
switch (id) {
case 0 :
retval.setIndex(( short ) 0xffff8010);
retval.setBuiltin(( byte ) 3);
retval.setOutlineStyleLevel(( byte ) 0xffffffff);
break;
case 1 :
retval.setIndex(( short ) 0xffff8011);
retval.setBuiltin(( byte ) 6);
retval.setOutlineStyleLevel(( byte ) 0xffffffff);
break;
case 2 :
retval.setIndex(( short ) 0xffff8012);
retval.setBuiltin(( byte ) 4);
retval.setOutlineStyleLevel(( byte ) 0xffffffff);
break;
case 3 :
retval.setIndex(( short ) 0xffff8013);
retval.setBuiltin(( byte ) 7);
retval.setOutlineStyleLevel(( byte ) 0xffffffff);
break;
case 4 :
retval.setIndex(( short ) 0xffff8000);
retval.setBuiltin(( byte ) 0);
retval.setOutlineStyleLevel(( byte ) 0xffffffff);
break;
case 5 :
retval.setIndex(( short ) 0xffff8014);
retval.setBuiltin(( byte ) 5);
retval.setOutlineStyleLevel(( byte ) 0xffffffff);
break;
}
return retval;
|
protected org.apache.poi.hssf.record.Record | createTabId()creates the TabId record containing an array of 0,1,2. This release of HSSF
always has the default three sheets, no less, no more.
TabIdRecord retval = new TabIdRecord();
short[] tabidarray = {
0
};
retval.setTabIdArray(tabidarray);
return retval;
|
protected org.apache.poi.hssf.record.Record | createUseSelFS()Creates the UseSelFS object with the use natural language flag set to 0 (false)
UseSelFSRecord retval = new UseSelFSRecord();
retval.setFlag(( short ) 0);
return retval;
|
protected org.apache.poi.hssf.record.Record | createWindowOne()creates the WindowOne record with the following magic values:
horizontal hold - 0x168
vertical hold - 0x10e
width - 0x3a5c
height - 0x23be
options - 0x38
selected tab - 0
displayed tab - 0
num selected tab- 0
tab width ratio - 0x258
WindowOneRecord retval = new WindowOneRecord();
retval.setHorizontalHold(( short ) 0x168);
retval.setVerticalHold(( short ) 0x10e);
retval.setWidth(( short ) 0x3a5c);
retval.setHeight(( short ) 0x23be);
retval.setOptions(( short ) 0x38);
retval.setSelectedTab(( short ) 0x0);
retval.setDisplayedTab(( short ) 0x0);
retval.setNumSelectedTabs(( short ) 1);
retval.setTabWidthRatio(( short ) 0x258);
return retval;
|
protected org.apache.poi.hssf.record.Record | createWindowProtect()creates the WindowProtect record with protect set to false.
WindowProtectRecord retval = new WindowProtectRecord();
retval.setProtect(
false); // by default even when we support it we won't
return retval; // want it to be protected
|
public static org.apache.poi.hssf.model.Workbook | createWorkbook(java.util.List recs)read support for low level
API. Pass in an array of Record objects, A Workbook
object is constructed and passed back with all of its initialization set
to the passed in records and references to those records held. Unlike Sheet
workbook does not use an offset (its assumed to be 0) since its first in a file.
If you need an offset then construct a new array with a 0 offset or write your
own ;-p.
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "Workbook (readfile) created with reclen=",
new Integer(recs.size()));
Workbook retval = new Workbook();
ArrayList records = new ArrayList(recs.size() / 3);
for (int k = 0; k < recs.size(); k++) {
Record rec = ( Record ) recs.get(k);
if (rec.getSid() == EOFRecord.sid) {
records.add(rec);
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found workbook eof record at " + k);
break;
}
switch (rec.getSid()) {
case BoundSheetRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found boundsheet record at " + k);
retval.boundsheets.add(rec);
retval.records.setBspos( k );
break;
case SSTRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found sst record at " + k);
retval.sst = ( SSTRecord ) rec;
break;
case FontRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found font record at " + k);
retval.records.setFontpos( k );
retval.numfonts++;
break;
case ExtendedFormatRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found XF record at " + k);
retval.records.setXfpos( k );
retval.numxfs++;
break;
case TabIdRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found tabid record at " + k);
retval.records.setTabpos( k );
break;
case ProtectRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found protect record at " + k);
retval.records.setProtpos( k );
break;
case BackupRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found backup record at " + k);
retval.records.setBackuppos( k );
break;
case ExternSheetRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found extern sheet record at " + k);
retval.externSheet = ( ExternSheetRecord ) rec;
break;
case NameRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found name record at " + k);
retval.names.add(rec);
// retval.records.namepos = k;
break;
case SupBookRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found SupBook record at " + k);
// retval.records.supbookpos = k;
break;
case FormatRecord.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found format record at " + k);
retval.formats.add(rec);
retval.maxformatid = retval.maxformatid >= ((FormatRecord)rec).getIndexCode() ? retval.maxformatid : ((FormatRecord)rec).getIndexCode();
break;
case DateWindow1904Record.sid :
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found datewindow1904 record at " + k);
retval.uses1904datewindowing = ((DateWindow1904Record)rec).getWindowing() == 1;
break;
case PaletteRecord.sid:
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found palette record at " + k);
retval.records.setPalettepos( k );
break;
case WindowOneRecord.sid:
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "found WindowOneRecord at " + k);
retval.windowOne = (WindowOneRecord) rec;
default :
}
records.add(rec);
}
//What if we dont have any ranges and supbooks
// if (retval.records.supbookpos == 0) {
// retval.records.supbookpos = retval.records.bspos + 1;
// retval.records.namepos = retval.records.supbookpos + 1;
// }
retval.records.setRecords(records);
if (retval.windowOne == null) {
retval.windowOne = (WindowOneRecord) retval.createWindowOne();
}
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "exit create workbook from existing file function");
return retval;
|
public static org.apache.poi.hssf.model.Workbook | createWorkbook()Creates an empty workbook object with three blank sheets and all the empty
fields. Use this to create a workbook from scratch.
if (log.check( POILogger.DEBUG ))
log.log( DEBUG, "creating new workbook from scratch" );
Workbook retval = new Workbook();
ArrayList records = new ArrayList( 30 );
ArrayList formats = new ArrayList( 8 );
records.add( retval.createBOF() );
records.add( retval.createInterfaceHdr() );
records.add( retval.createMMS() );
records.add( retval.createInterfaceEnd() );
records.add( retval.createWriteAccess() );
records.add( retval.createCodepage() );
records.add( retval.createDSF() );
records.add( retval.createTabId() );
retval.records.setTabpos( records.size() - 1 );
records.add( retval.createFnGroupCount() );
records.add( retval.createWindowProtect() );
records.add( retval.createProtect() );
retval.records.setProtpos( records.size() - 1 );
records.add( retval.createPassword() );
records.add( retval.createProtectionRev4() );
records.add( retval.createPasswordRev4() );
retval.windowOne = (WindowOneRecord) retval.createWindowOne();
records.add( retval.windowOne );
records.add( retval.createBackup() );
retval.records.setBackuppos( records.size() - 1 );
records.add( retval.createHideObj() );
records.add( retval.createDateWindow1904() );
records.add( retval.createPrecision() );
records.add( retval.createRefreshAll() );
records.add( retval.createBookBool() );
records.add( retval.createFont() );
records.add( retval.createFont() );
records.add( retval.createFont() );
records.add( retval.createFont() );
retval.records.setFontpos( records.size() - 1 ); // last font record postion
retval.numfonts = 4;
// set up format records
for ( int i = 0; i <= 7; i++ )
{
Record rec;
rec = retval.createFormat( i );
retval.maxformatid = retval.maxformatid >= ( (FormatRecord) rec ).getIndexCode() ? retval.maxformatid : ( (FormatRecord) rec ).getIndexCode();
formats.add( rec );
records.add( rec );
}
retval.formats = formats;
for ( int k = 0; k < 21; k++ )
{
records.add( retval.createExtendedFormat( k ) );
retval.numxfs++;
}
retval.records.setXfpos( records.size() - 1 );
for ( int k = 0; k < 6; k++ )
{
records.add( retval.createStyle( k ) );
}
records.add( retval.createUseSelFS() );
for ( int k = 0; k < 1; k++ )
{ // now just do 1
BoundSheetRecord bsr =
(BoundSheetRecord) retval.createBoundSheet( k );
records.add( bsr );
retval.boundsheets.add( bsr );
retval.records.setBspos( records.size() - 1 );
}
// retval.records.supbookpos = retval.records.bspos + 1;
// retval.records.namepos = retval.records.supbookpos + 2;
records.add( retval.createCountry() );
retval.sst = (SSTRecord) retval.createSST();
records.add( retval.sst );
records.add( retval.createExtendedSST() );
records.add( retval.createEOF() );
retval.records.setRecords(records);
if (log.check( POILogger.DEBUG ))
log.log( DEBUG, "exit create new workbook from scratch" );
return retval;
|
protected org.apache.poi.hssf.record.Record | createWriteAccess()creates the WriteAccess record containing the logged in user's name
WriteAccessRecord retval = new WriteAccessRecord();
try
{
retval.setUsername(System.getProperty("user.name"));
}
catch (java.security.AccessControlException e)
{
// AccessControlException can occur in a restricted context
// (client applet/jws application or restricted security server)
retval.setUsername("POI");
}
return retval;
|
public boolean | doesContainsSheetName(java.lang.String name, int excludeSheetIdx)Determines whether a workbook contains the privided sheet name.
for ( int i = 0; i < boundsheets.size(); i++ )
{
BoundSheetRecord boundSheetRecord = (BoundSheetRecord) boundsheets.get( i );
if (excludeSheetIdx != i && name.equals(boundSheetRecord.getSheetname()))
return true;
}
return false;
|
public org.apache.poi.hssf.record.Record | findFirstRecordBySid(short sid)Returns the first occurance of a record matching a particular sid.
for (Iterator iterator = records.iterator(); iterator.hasNext(); ) {
Record record = ( Record ) iterator.next();
if (record.getSid() == sid) {
return record;
}
}
return null;
|
public int | findFirstRecordLocBySid(short sid)Returns the index of a record matching a particular sid.
int index = 0;
for (Iterator iterator = records.iterator(); iterator.hasNext(); ) {
Record record = ( Record ) iterator.next();
if (record.getSid() == sid) {
return index;
}
index ++;
}
return -1;
|
public org.apache.poi.hssf.record.Record | findNextRecordBySid(short sid, int pos)Returns the next occurance of a record matching a particular sid.
int matches = 0;
for (Iterator iterator = records.iterator(); iterator.hasNext(); ) {
Record record = ( Record ) iterator.next();
if (record.getSid() == sid) {
if (matches++ == pos)
return record;
}
}
return null;
|
public java.lang.String | findSheetNameFromExternSheet(short num)finds the sheet name by his extern sheet index
String result="";
short indexToSheet = externSheet.getREFRecordAt(num).getIndexToFirstSupBook();
if (indexToSheet>-1) { //error check, bail out gracefully!
result = getSheetName(indexToSheet);
}
return result;
|
private void | fixTabIdRecord()make the tabid record look like the current situation.
TabIdRecord tir = ( TabIdRecord ) records.get(records.getTabpos());
short[] tia = new short[ boundsheets.size() ];
for (short k = 0; k < tia.length; k++) {
tia[ k ] = k;
}
tir.setTabIdArray(tia);
|
public org.apache.poi.hssf.record.BackupRecord | getBackupRecord()Returns the position of the backup record.
return ( BackupRecord ) records.get(records.getBackuppos());
|
public org.apache.poi.hssf.record.PaletteRecord | getCustomPalette()Returns the custom palette in use for this workbook; if a custom palette record
does not exist, then it is created.
PaletteRecord palette;
int palettePos = records.getPalettepos();
if (palettePos != -1) {
Record rec = records.get(palettePos);
if (rec instanceof PaletteRecord) {
palette = (PaletteRecord) rec;
} else throw new RuntimeException("InternalError: Expected PaletteRecord but got a '"+rec+"'");
}
else
{
palette = createPalette();
//Add the palette record after the bof which is always the first record
records.add(1, palette);
records.setPalettepos(1);
}
return palette;
|
public org.apache.poi.hssf.model.DrawingManager2 | getDrawingManager()
return drawingManager;
|
public org.apache.poi.hssf.record.ExtendedFormatRecord | getExFormatAt(int index)gets the ExtendedFormatRecord at the given 0-based index
int xfptr = records.getXfpos() - (numxfs - 1);
xfptr += index;
ExtendedFormatRecord retval =
( ExtendedFormatRecord ) records.get(xfptr);
return retval;
|
public org.apache.poi.hssf.record.FontRecord | getFontRecordAt(int idx)gets the font record at the given index in the font table. Remember
"There is No Four" (someone at M$ must have gone to Rocky Horror one too
many times)
int index = idx;
if (index > 4) {
index -= 1; // adjust for "There is no 4"
}
if (index > (numfonts - 1)) {
throw new ArrayIndexOutOfBoundsException(
"There are only " + numfonts
+ " font records, you asked for " + idx);
}
FontRecord retval =
( FontRecord ) records.get((records.getFontpos() - (numfonts - 1)) + index);
return retval;
|
public short | getFormat(java.lang.String format, boolean createIfNotFound)Returns a format index that matches the passed in format. It does not tie into HSSFDataFormat.
Iterator iterator;
for (iterator = formats.iterator(); iterator.hasNext();) {
FormatRecord r = (FormatRecord)iterator.next();
if (r.getFormatString().equals(format)) {
return r.getIndexCode();
}
}
if (createIfNotFound) {
return createFormat(format);
}
return -1;
|
public java.util.ArrayList | getFormats()Returns the list of FormatRecords in the workbook.
return formats;
|
public org.apache.poi.hssf.record.NameRecord | getNameRecord(int index)gets the name record
NameRecord result = (NameRecord) names.get(index);
return result;
|
public int | getNumExFormats()get the number of ExtendedFormat records contained in this workbook.
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "getXF=", new Integer(numxfs));
return numxfs;
|
public int | getNumNames()gets the total number of names
int result = names.size();
return result;
|
public int | getNumRecords()
return records.size();
|
public int | getNumSheets()returns the number of boundsheet objects contained in this workbook.
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "getNumSheets=", new Integer(boundsheets.size()));
return boundsheets.size();
|
public int | getNumberOfFontRecords()gets the number of font records
return numfonts;
|
public java.util.List | getRecords()
return records.getRecords();
|
public org.apache.poi.hssf.record.UnicodeString | getSSTString(int str)given an index into the SST table, this function returns the corresponding String value
if (sst == null) {
insertSST();
}
UnicodeString retval = sst.getString(str);
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "Returning SST for index=", new Integer(str),
" String= ", retval);
return retval;
|
public int | getSheetIndex(java.lang.String name)get the sheet's index
int retval = -1;
for (int k = 0; k < boundsheets.size(); k++) {
String sheet = getSheetName(k);
if (sheet.equalsIgnoreCase(name)) {
retval = k;
break;
}
}
return retval;
|
public int | getSheetIndexFromExternSheetIndex(int externSheetNumber)Finds the sheet index for a particular external sheet number.
if (externSheetNumber >= externSheet.getNumOfREFStructures())
return -1;
else
return externSheet.getREFRecordAt(externSheetNumber).getIndexToFirstSupBook();
|
public java.lang.String | getSheetName(int sheetnum)gets the name for a given sheet.
return (( BoundSheetRecord ) boundsheets.get(sheetnum))
.getSheetname();
|
public org.apache.poi.hssf.util.SheetReferences | getSheetReferences()
SheetReferences refs = new SheetReferences();
if (externSheet != null) {
for (int k = 0; k < externSheet.getNumOfREFStructures(); k++) {
String sheetName = findSheetNameFromExternSheet((short)k);
refs.addSheetReference(sheetName, k);
}
}
return refs;
|
public int | getSize()
int retval = 0;
SSTRecord sst = null;
for ( int k = 0; k < records.size(); k++ )
{
Record record = records.get( k );
// Let's skip RECALCID records, as they are only use for optimization
if ( record.getSid() != RecalcIdRecord.sid || ( (RecalcIdRecord) record ).isNeeded() )
{
if (record instanceof SSTRecord)
sst = (SSTRecord)record;
if (record.getSid() == ExtSSTRecord.sid && sst != null)
retval += sst.calcExtSSTRecordSize();
else
retval += record.getRecordSize();
}
}
return retval;
|
public org.apache.poi.hssf.record.NameRecord | getSpecificBuiltinRecord(byte name, int sheetIndex)Retrieves the Builtin NameRecord that matches the name and index
There shouldn't be too many names to make the sequential search too slow
Iterator iterator = names.iterator();
while (iterator.hasNext()) {
NameRecord record = ( NameRecord ) iterator.next();
//print areas are one based
if (record.getBuiltInName() == name && record.getIndexToSheet() == sheetIndex) {
return record;
}
}
return null;
|
public org.apache.poi.hssf.record.WindowOneRecord | getWindowOne()
return windowOne;
|
public void | insertSST()use this function to add a Shared String Table to an existing sheet (say
generated by a different java api) without an sst....
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "creating new SST via insertSST!");
sst = ( SSTRecord ) createSST();
records.add(records.size() - 1, createExtendedSST());
records.add(records.size() - 2, sst);
|
public boolean | isUsing1904DateWindowing()Whether date windowing is based on 1/2/1904 or 1/1/1900.
Some versions of Excel (Mac) can save workbooks using 1904 date windowing.
return uses1904datewindowing;
|
public void | removeBuiltinRecord(byte name, int sheetIndex)Removes the specified Builtin NameRecord that matches the name and index
//the name array is smaller so searching through it should be faster than
//using the findFirstXXXX methods
NameRecord record = getSpecificBuiltinRecord(name, sheetIndex);
if (record != null) {
names.remove(record);
}
|
public void | removeName(int namenum)removes the name
if (names.size() > namenum) {
int idx = findFirstRecordLocBySid(NameRecord.sid);
records.remove(idx + namenum);
names.remove(namenum);
}
|
public void | removeSheet(int sheetnum)
if (boundsheets.size() > sheetnum) {
records.remove(records.getBspos() - (boundsheets.size() - 1) + sheetnum);
// records.bspos--;
boundsheets.remove(sheetnum);
fixTabIdRecord();
}
|
public int | serialize(int offset, byte[] data)Serializes all records int the worksheet section into a big byte array. Use
this to write the Workbook out.
if (log.check( POILogger.DEBUG ))
log.log( DEBUG, "Serializing Workbook with offsets" );
int pos = 0;
SSTRecord sst = null;
int sstPos = 0;
boolean wroteBoundSheets = false;
for ( int k = 0; k < records.size(); k++ )
{
Record record = records.get( k );
// Let's skip RECALCID records, as they are only use for optimization
if ( record.getSid() != RecalcIdRecord.sid || ( (RecalcIdRecord) record ).isNeeded() )
{
int len = 0;
if (record instanceof SSTRecord)
{
sst = (SSTRecord)record;
sstPos = pos;
}
if (record.getSid() == ExtSSTRecord.sid && sst != null)
{
record = sst.createExtSSTRecord(sstPos + offset);
}
if (record instanceof BoundSheetRecord) {
if(!wroteBoundSheets) {
for (int i = 0; i < boundsheets.size(); i++) {
len+= ((BoundSheetRecord)boundsheets.get(i))
.serialize(pos+offset+len, data);
}
wroteBoundSheets = true;
}
} else {
len = record.serialize( pos + offset, data );
}
///// DEBUG BEGIN /////
// if (len != record.getRecordSize())
// throw new IllegalStateException("Record size does not match serialized bytes. Serialized size = " + len + " but getRecordSize() returns " + record.getRecordSize());
///// DEBUG END /////
pos += len; // rec.length;
}
}
if (log.check( POILogger.DEBUG ))
log.log( DEBUG, "Exiting serialize workbook" );
return pos;
|
public void | setSheetBof(int sheetnum, int pos)Sets the BOF for a given sheet
if (log.check( POILogger.DEBUG ))
log.log(DEBUG, "setting bof for sheetnum =", new Integer(sheetnum),
" at pos=", new Integer(pos));
checkSheets(sheetnum);
(( BoundSheetRecord ) boundsheets.get(sheetnum))
.setPositionOfBof(pos);
|
public void | setSheetName(int sheetnum, java.lang.String sheetname)sets the name for a given sheet. If the boundsheet record doesn't exist and
its only one more than we have, go ahead and create it. If its > 1 more than
we have, except
checkSheets(sheetnum);
BoundSheetRecord sheet = (BoundSheetRecord)boundsheets.get( sheetnum );
sheet.setSheetname(sheetname);
sheet.setSheetnameLength( (byte)sheetname.length() );
|
public void | setSheetName(int sheetnum, java.lang.String sheetname, short encoding)sets the name for a given sheet forcing the encoding. This is STILL A BAD IDEA.
Poi now automatically detects unicode
checkSheets(sheetnum);
BoundSheetRecord sheet = (BoundSheetRecord)boundsheets.get( sheetnum );
sheet.setSheetname(sheetname);
sheet.setSheetnameLength( (byte)sheetname.length() );
sheet.setCompressedUnicodeFlag( (byte)encoding );
|
public void | setSheetOrder(java.lang.String sheetname, int pos)sets the order of appearance for a given sheet.
int sheetNumber = getSheetIndex(sheetname);
//remove the sheet that needs to be reordered and place it in the spot we want
boundsheets.add(pos, boundsheets.remove(sheetNumber));
|