⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windowtworecord.java

📁 Office格式转换代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* ==================================================================== * 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:        Window Two Record<P> * Description:  sheet window settings<P> * REFERENCE:  PG 422 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 WindowTwoRecord    extends Record{    public final static short sid = 0x23e;    private short             field_1_options;    // bitfields    private BitField          displayFormulas         = new BitField(0x01);    private BitField          displayGridlines        = new BitField(0x02);    private BitField          displayRowColHeadings   = new BitField(0x04);    private BitField          freezePanes             = new BitField(0x08);    private BitField          displayZeros            = new BitField(0x10);    private BitField          defaultHeader           =        new BitField(0x20);   // if false use color in field 4    // if true use default foreground    // for headers    private BitField          arabic                  =        new BitField(0x40);   // for our desert dwelling friends    private BitField          displayGuts             = new BitField(0x80);    private BitField          freezePanesNoSplit      = new BitField(0x100);    private BitField          selected                = new BitField(0x200);    private BitField          paged                   = new BitField(0x400);    private BitField          savedInPageBreakPreview = new BitField(0x800);    // 4-7 reserved    // end bitfields    private short             field_2_top_row;    private short             field_3_left_col;    private int               field_4_header_color;    private short             field_5_page_break_zoom;    private short             field_6_normal_zoom;    private int               field_7_reserved;    public WindowTwoRecord()    {    }    /**     * Constructs a WindowTwo record and sets its fields appropriately.     *     * @param id     id must be 0x23e 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 WindowTwoRecord(short id, short size, byte [] data)    {        super(id, size, data);    }    /**     * Constructs a WindowTwo record and sets its fields appropriately.     *     * @param id     id must be 0x23e 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's data     */    public WindowTwoRecord(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 WindowTwo RECORD");        }    }    protected void fillFields(byte [] data, short size, int offset)    {        field_1_options      = LittleEndian.getShort(data, 0 + offset);        field_2_top_row      = LittleEndian.getShort(data, 2 + offset);        field_3_left_col     = LittleEndian.getShort(data, 4 + offset);        field_4_header_color = LittleEndian.getInt(data, 6 + offset);        if (size > 10)        {            field_5_page_break_zoom = LittleEndian.getShort(data,                    10 + offset);            field_6_normal_zoom     = LittleEndian.getShort(data,                    12 + offset);        }        if (size > 14)        {   // there is a special case of this record that has only 14 bytes...undocumented!            field_7_reserved = LittleEndian.getInt(data, 14 + offset);        }    }    /**     * set the options bitmask or just use the bit setters.     * @param options     */    public void setOptions(short options)    {        field_1_options = options;    }    // option bitfields    /**     * set whether the window should display formulas     * @param formulas or not     */    public void setDisplayFormulas(boolean formulas)    {        field_1_options = displayFormulas.setShortBoolean(field_1_options, formulas);    }    /**     * set whether the window should display gridlines     * @param gridlines or not     */    public void setDisplayGridlines(boolean gridlines)    {        field_1_options = displayGridlines.setShortBoolean(field_1_options, gridlines);    }    /**     * set whether the window should display row and column headings     * @param headings or not     */    public void setDisplayRowColHeadings(boolean headings)    {        field_1_options = displayRowColHeadings.setShortBoolean(field_1_options, headings);    }    /**     * set whether the window should freeze panes     * @param freezepanes  freeze panes or not     */    public void setFreezePanes(boolean freezepanes)    {        field_1_options = freezePanes.setShortBoolean(field_1_options, freezepanes);    }    /**     * set whether the window should display zero values     * @param zeros or not     */    public void setDisplayZeros(boolean zeros)    {        field_1_options = displayZeros.setShortBoolean(field_1_options, zeros);    }    /**     * set whether the window should display a default header     * @param header or not     */    public void setDefaultHeader(boolean header)    {        field_1_options = defaultHeader.setShortBoolean(field_1_options, header);    }    /**     * is this arabic?     * @param isarabic  arabic or not     */    public void setArabic(boolean isarabic)    {        field_1_options = arabic.setShortBoolean(field_1_options, isarabic);    }    /**     * set whether the outline symbols are displaed     * @param guts  symbols or not     */    public void setDisplayGuts(boolean guts)    {        field_1_options = displayGuts.setShortBoolean(field_1_options, guts);    }    /**     * freeze unsplit panes or not     * @param freeze or not     */    public void setFreezePanesNoSplit(boolean freeze)    {        field_1_options = freezePanesNoSplit.setShortBoolean(field_1_options, freeze);    }    /**     * sheet tab is selected     * @param sel  selected or not     */    public void setSelected(boolean sel)    {        field_1_options = selected.setShortBoolean(field_1_options, sel);    }    /**     * is the sheet currently displayed in the window     * @param p  displayed or not     */    public void setPaged(boolean p)    {        field_1_options = paged.setShortBoolean(field_1_options, p);    }    /**     * was the sheet saved in page break view     * @param p  pagebreaksaved or not     */    public void setSavedInPageBreakPreview(boolean p)    {        field_1_options = savedInPageBreakPreview.setShortBoolean(field_1_options, p);    }    // end of bitfields.    /**     * set the top row visible in the window     * @param topRow  top row visible     */    public void setTopRow(short topRow)    {        field_2_top_row = topRow;    }    /**     * set the leftmost column displayed in the window     * @param leftCol  leftmost column     */    public void setLeftCol(short leftCol)    {        field_3_left_col = leftCol;    }    /**

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -