📄 rowrecord.java
字号:
/* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" and * "Apache POI" must not be used to endorse or promote products * derived from this software without prior written permission. For * written permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * "Apache POI", nor may "Apache" appear in their name, without * prior written permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */package org.apache.poi.hssf.record;import org.apache.poi.util.BitField;import org.apache.poi.util.LittleEndian;/** * Title: Row Record<P> * Description: stores the row information for the sheet. <P> * REFERENCE: PG 379 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P> * @author Andrew C. Oliver (acoliver at apache dot org) * @author Jason Height (jheight at chariot dot net dot au) * @version 2.0-pre */public class RowRecord extends Record implements Comparable{ public final static short sid = 0x208; //private short field_1_row_number; private int field_1_row_number; private short field_2_first_col; private short field_3_last_col; // plus 1 private short field_4_height; private short field_5_optimize; // hint field for gui, can/should be set to zero // for generated sheets. private short field_6_reserved; private short field_7_option_flags; private BitField outlineLevel = new BitField(0x07); // bit 3 reserved private BitField colapsed = new BitField(0x10); private BitField zeroHeight = new BitField(0x20); private BitField badFontHeight = new BitField(0x40); private BitField formatted = new BitField(0x80); private short field_8_xf_index; // only if isFormatted public RowRecord() { } /** * Constructs a Row record and sets its fields appropriately. * * @param id id must be 0x208 or an exception will be throw upon validation * @param size the size of the data area of the record * @param data data of the record (should not contain sid/len) */ public RowRecord(short id, short size, byte [] data) { super(id, size, data); } /** * Constructs a Row record and sets its fields appropriately. * * @param id id must be 0x208 or an exception will be throw upon validation * @param size the size of the data area of the record * @param data data of the record (should not contain sid/len) * @param offset of the record data */ public RowRecord(short id, short size, byte [] data, int offset) { super(id, size, data, offset); } protected void validateSid(short id) { if (id != sid) { throw new RecordFormatException("NOT A valid ROW RECORD"); } } protected void fillFields(byte [] data, short size, int offset) { //field_1_row_number = LittleEndian.getShort(data, 0 + offset); field_1_row_number = LittleEndian.getUShort(data, 0 + offset); field_2_first_col = LittleEndian.getShort(data, 2 + offset); field_3_last_col = LittleEndian.getShort(data, 4 + offset); field_4_height = LittleEndian.getShort(data, 6 + offset); field_5_optimize = LittleEndian.getShort(data, 8 + offset); field_6_reserved = LittleEndian.getShort(data, 10 + offset); field_7_option_flags = LittleEndian.getShort(data, 12 + offset); field_8_xf_index = LittleEndian.getShort(data, 14 + offset); } /** * set the logical row number for this row (0 based index) * @param row - the row number */ //public void setRowNumber(short row) public void setRowNumber(int row) { field_1_row_number = row; } /** * set the logical col number for the first cell this row (0 based index) * @param col - the col number */ public void setFirstCol(short col) { field_2_first_col = col; } /** * set the logical col number for the last cell this row (0 based index) * @param col - the col number */ public void setLastCol(short col) { field_3_last_col = col; } /** * set the height of the row * @param height of the row */ public void setHeight(short height) { field_4_height = height; } /** * set whether to optimize or not (set to 0) * @param optimize (set to 0) */ public void setOptimize(short optimize) { field_5_optimize = optimize; } /** * sets the option bitmask. (use the individual bit setters that refer to this * method) * @param options - the bitmask */ public void setOptionFlags(short options) { field_7_option_flags = options; } // option bitfields /** * set the outline level of this row * @param ol - the outline level * @see #setOptionFlags(short) */ public void setOutlineLevel(short ol) { field_7_option_flags = outlineLevel.setShortValue(field_7_option_flags, ol); } /** * set whether or not to colapse this row * @param c - colapse or not * @see #setOptionFlags(short) */ public void setColapsed(boolean c) { field_7_option_flags = colapsed.setShortBoolean(field_7_option_flags, c); } /** * set whether or not to display this row with 0 height * @param z height is zero or not. * @see #setOptionFlags(short) */ public void setZeroHeight(boolean z) { field_7_option_flags = zeroHeight.setShortBoolean(field_7_option_flags, z); } /** * set whether the font and row height are not compatible * @param f true if they aren't compatible (damn not logic) * @see #setOptionFlags(short) */ public void setBadFontHeight(boolean f) { field_7_option_flags = badFontHeight.setShortBoolean(field_7_option_flags, f); } /** * set whether the row has been formatted (even if its got all blank cells) * @param f formatted or not * @see #setOptionFlags(short) */ public void setFormatted(boolean f) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -