Looks like we already had Ref8U but with a different name... Switch to using CellRangeAddress instead!
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@894078 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
869fc4e5a6
commit
1186abb3b4
@ -18,7 +18,7 @@
|
|||||||
package org.apache.poi.hssf.record;
|
package org.apache.poi.hssf.record;
|
||||||
|
|
||||||
import org.apache.poi.hssf.record.common.FtrHeader;
|
import org.apache.poi.hssf.record.common.FtrHeader;
|
||||||
import org.apache.poi.hssf.record.common.Ref8U;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
import org.apache.poi.util.LittleEndianOutput;
|
import org.apache.poi.util.LittleEndianOutput;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -41,7 +41,7 @@ public final class FeatRecord extends StandardRecord {
|
|||||||
/** Only matters if type is ISFFEC2 */
|
/** Only matters if type is ISFFEC2 */
|
||||||
private long cbFeatData;
|
private long cbFeatData;
|
||||||
private int reserved3; // Should always be zero
|
private int reserved3; // Should always be zero
|
||||||
private Ref8U[] cellRefs;
|
private CellRangeAddress[] cellRefs;
|
||||||
|
|
||||||
private byte[] rgbFeat;
|
private byte[] rgbFeat;
|
||||||
|
|
||||||
@ -64,9 +64,9 @@ public final class FeatRecord extends StandardRecord {
|
|||||||
cbFeatData = in.readInt();
|
cbFeatData = in.readInt();
|
||||||
reserved3 = in.readShort();
|
reserved3 = in.readShort();
|
||||||
|
|
||||||
cellRefs = new Ref8U[cref];
|
cellRefs = new CellRangeAddress[cref];
|
||||||
for(int i=0; i<cellRefs.length; i++) {
|
for(int i=0; i<cellRefs.length; i++) {
|
||||||
cellRefs[i] = new Ref8U(in);
|
cellRefs[i] = new CellRangeAddress(in);
|
||||||
}
|
}
|
||||||
|
|
||||||
rgbFeat = in.readRemainder();
|
rgbFeat = in.readRemainder();
|
||||||
@ -100,6 +100,8 @@ public final class FeatRecord extends StandardRecord {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected int getDataSize() {
|
protected int getDataSize() {
|
||||||
return 12 + 2+1+4+2+4+2+Ref8U.getDataSize()+rgbFeat.length;
|
return 12 + 2+1+4+2+4+2+
|
||||||
|
(cellRefs.length * CellRangeAddress.ENCODED_SIZE)
|
||||||
|
+rgbFeat.length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,92 +0,0 @@
|
|||||||
/* ====================================================================
|
|
||||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
||||||
contributor license agreements. See the NOTICE file distributed with
|
|
||||||
this work for additional information regarding copyright ownership.
|
|
||||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
||||||
(the "License"); you may not use this file except in compliance with
|
|
||||||
the License. You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
==================================================================== */
|
|
||||||
|
|
||||||
package org.apache.poi.hssf.record.common;
|
|
||||||
|
|
||||||
import org.apache.poi.hssf.record.RecordInputStream;
|
|
||||||
import org.apache.poi.util.LittleEndianOutput;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Title: Ref8U (Cell Range) common record part
|
|
||||||
* <P>
|
|
||||||
* This record part specifies common way of encoding a
|
|
||||||
* block of cells via first-last row-column.
|
|
||||||
*/
|
|
||||||
public final class Ref8U {
|
|
||||||
private short firstRow; // zero-based
|
|
||||||
private short lastRow; // zero-based
|
|
||||||
private short firstCol; // zero-based
|
|
||||||
private short lastCol; // zero-based
|
|
||||||
|
|
||||||
public Ref8U() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Ref8U(RecordInputStream in) {
|
|
||||||
firstRow = in.readShort();
|
|
||||||
lastRow = in.readShort();
|
|
||||||
firstCol = in.readShort();
|
|
||||||
lastCol = in.readShort();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString() {
|
|
||||||
StringBuffer buffer = new StringBuffer();
|
|
||||||
buffer.append(" [CELL RANGE]\n");
|
|
||||||
buffer.append(" Rows " + firstRow + " to " + lastRow);
|
|
||||||
buffer.append(" Cols " + firstCol + " to " + lastCol);
|
|
||||||
buffer.append(" [/CELL RANGE]\n");
|
|
||||||
return buffer.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void serialize(LittleEndianOutput out) {
|
|
||||||
out.writeShort(firstRow);
|
|
||||||
out.writeShort(lastRow);
|
|
||||||
out.writeShort(firstCol);
|
|
||||||
out.writeShort(lastCol);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getDataSize() {
|
|
||||||
return 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
public short getFirstRow() {
|
|
||||||
return firstRow;
|
|
||||||
}
|
|
||||||
public void setFirstRow(short firstRow) {
|
|
||||||
this.firstRow = firstRow;
|
|
||||||
}
|
|
||||||
|
|
||||||
public short getLastRow() {
|
|
||||||
return lastRow;
|
|
||||||
}
|
|
||||||
public void setLastRow(short lastRow) {
|
|
||||||
this.lastRow = lastRow;
|
|
||||||
}
|
|
||||||
|
|
||||||
public short getFirstCol() {
|
|
||||||
return firstCol;
|
|
||||||
}
|
|
||||||
public void setFirstCol(short firstCol) {
|
|
||||||
this.firstCol = firstCol;
|
|
||||||
}
|
|
||||||
|
|
||||||
public short getLastCol() {
|
|
||||||
return lastCol;
|
|
||||||
}
|
|
||||||
public void setLastCol(short lastCol) {
|
|
||||||
this.lastCol = lastCol;
|
|
||||||
}
|
|
||||||
}
|
|
@ -25,6 +25,9 @@ import org.apache.poi.util.LittleEndianOutput;
|
|||||||
/**
|
/**
|
||||||
* See OOO documentation: excelfileformat.pdf sec 2.5.14 - 'Cell Range Address'<p/>
|
* See OOO documentation: excelfileformat.pdf sec 2.5.14 - 'Cell Range Address'<p/>
|
||||||
*
|
*
|
||||||
|
* <p>In the Microsoft documentation, this is also known as a
|
||||||
|
* Ref8U - see page 831 of version 1.0 of the documentation.
|
||||||
|
*
|
||||||
* Note - {@link SelectionRecord} uses the BIFF5 version of this structure
|
* Note - {@link SelectionRecord} uses the BIFF5 version of this structure
|
||||||
* @author Dragos Buleandra (dragos.buleandra@trade2b.ro)
|
* @author Dragos Buleandra (dragos.buleandra@trade2b.ro)
|
||||||
*/
|
*/
|
||||||
|
@ -15,16 +15,17 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
==================================================================== */
|
==================================================================== */
|
||||||
|
|
||||||
package org.apache.poi.hssf.record.common;
|
package org.apache.poi.ss.util;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
|
||||||
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
|
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
|
||||||
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
import org.apache.poi.util.LittleEndianOutputStream;
|
import org.apache.poi.util.LittleEndianOutputStream;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
public final class TestRef8U extends TestCase {
|
public final class TestCellRangeAddress extends TestCase {
|
||||||
byte[] data = new byte[] {
|
byte[] data = new byte[] {
|
||||||
(byte)0x02,(byte)0x00,
|
(byte)0x02,(byte)0x00,
|
||||||
(byte)0x04,(byte)0x00,
|
(byte)0x04,(byte)0x00,
|
||||||
@ -33,20 +34,20 @@ public final class TestRef8U extends TestCase {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public void testLoad() {
|
public void testLoad() {
|
||||||
Ref8U ref = new Ref8U(
|
CellRangeAddress ref = new CellRangeAddress(
|
||||||
TestcaseRecordInputStream.create(0x000, data)
|
TestcaseRecordInputStream.create(0x000, data)
|
||||||
);
|
);
|
||||||
assertEquals(2, ref.getFirstRow());
|
assertEquals(2, ref.getFirstRow());
|
||||||
assertEquals(4, ref.getLastRow());
|
assertEquals(4, ref.getLastRow());
|
||||||
assertEquals(0, ref.getFirstCol());
|
assertEquals(0, ref.getFirstColumn());
|
||||||
assertEquals(3, ref.getLastCol());
|
assertEquals(3, ref.getLastColumn());
|
||||||
|
|
||||||
assertEquals( 8, Ref8U.getDataSize() );
|
assertEquals( 8, CellRangeAddress.ENCODED_SIZE );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testStore()
|
public void testStore()
|
||||||
{
|
{
|
||||||
Ref8U ref = new Ref8U();
|
CellRangeAddress ref = new CellRangeAddress(0,0,0,0);
|
||||||
|
|
||||||
byte[] recordBytes;
|
byte[] recordBytes;
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
@ -63,8 +64,8 @@ public final class TestRef8U extends TestCase {
|
|||||||
// Now set the flags
|
// Now set the flags
|
||||||
ref.setFirstRow((short)2);
|
ref.setFirstRow((short)2);
|
||||||
ref.setLastRow((short)4);
|
ref.setLastRow((short)4);
|
||||||
ref.setFirstCol((short)0);
|
ref.setFirstColumn((short)0);
|
||||||
ref.setLastCol((short)3);
|
ref.setLastColumn((short)3);
|
||||||
|
|
||||||
// Re-test
|
// Re-test
|
||||||
baos.reset();
|
baos.reset();
|
Loading…
Reference in New Issue
Block a user