亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sheet.java

?? java 報表 to office文檔: 本包由java語言開發
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* ====================================================================   Copyright 2002-2004   Apache Software Foundation   Licensed 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.model;import org.apache.poi.hssf.record.*;import org.apache.poi.hssf.record.aggregates.ColumnInfoRecordsAggregate;import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate;import org.apache.poi.hssf.record.aggregates.RowRecordsAggregate;import org.apache.poi.hssf.record.aggregates.ValueRecordsAggregate;import org.apache.poi.hssf.record.formula.Ptg;import org.apache.poi.util.POILogFactory;import org.apache.poi.util.POILogger;import java.util.ArrayList;import java.util.Iterator;import java.util.List;   // normally I don't do this, buy we literally mean ALL/** * Low level model implementation of a Sheet (one workbook contains many sheets) * This file contains the low level binary records starting at the sheets BOF and * ending with the sheets EOF.  Use HSSFSheet for a high level representation. * <P> * The structures of the highlevel API use references to this to perform most of their * operations.  Its probably unwise to use these low level structures directly unless you * really know what you're doing.  I recommend you read the Microsoft Excel 97 Developer's * Kit (Microsoft Press) and the documentation at http://sc.openoffice.org/excelfileformat.pdf * before even attempting to use this. * <P> * @author  Andrew C. Oliver (acoliver at apache dot org) * @author  Glen Stampoultzis (glens at apache.org) * @author  Shawn Laubach (slaubach at apache dot org) Gridlines, Headers, Footers, and PrintSetup * @author Jason Height (jheight at chariot dot net dot au) Clone support. DBCell & Index Record writing support * @author  Brian Sanders (kestrel at burdell dot org) Active Cell support * * @see org.apache.poi.hssf.model.Workbook * @see org.apache.poi.hssf.usermodel.HSSFSheet * @version 1.0-pre */public class Sheet implements Model{    public static final short   LeftMargin = 0;    public static final short   RightMargin = 1;    public static final short   TopMargin = 2;    public static final short   BottomMargin = 3;    private static POILogger            log              = POILogFactory.getLogger(Sheet.class);    protected ArrayList                  records           =     null;              int                        preoffset         =     0;            // offset of the sheet in a new file              int                        loc               =     0;    protected boolean                    containsLabels    =     false;    protected int                        dimsloc           =     0;    protected DimensionsRecord           dims;    protected DefaultColWidthRecord      defaultcolwidth   =     null;    protected DefaultRowHeightRecord     defaultrowheight  =     null;    protected GridsetRecord              gridset           =     null;    protected PrintSetupRecord           printSetup        =     null;    protected HeaderRecord               header            =     null;    protected FooterRecord               footer            =     null;    protected PrintGridlinesRecord       printGridlines    =     null;    protected WindowTwoRecord            windowTwo         =     null;    protected MergeCellsRecord           merged            =     null;    protected Margin[]                   margins           =     null;    protected List                       mergedRecords     =     new ArrayList();    protected int                        numMergedRegions  =     0;    protected SelectionRecord            selection         =     null;    protected ColumnInfoRecordsAggregate columns           =     null;    protected ValueRecordsAggregate      cells             =     null;    protected RowRecordsAggregate        rows              =     null;    private   Iterator                   valueRecIterator  =     null;    private   Iterator                   rowRecIterator    =     null;    protected int                        eofLoc            =     0;    protected ProtectRecord              protect           =     null;    protected PageBreakRecord            rowBreaks         =     null;    protected PageBreakRecord            colBreaks         =     null;	    public static final byte PANE_LOWER_RIGHT = (byte)0;    public static final byte PANE_UPPER_RIGHT = (byte)1;    public static final byte PANE_LOWER_LEFT = (byte)2;    public static final byte PANE_UPPER_LEFT = (byte)3;    /**     * Creates new Sheet with no intialization --useless at this point     * @see #createSheet(List,int,int)     */    public Sheet()    {    }    /**     * read support  (offset used as starting point for search) for low level     * API.  Pass in an array of Record objects, the sheet number (0 based) and     * a record offset (should be the location of the sheets BOF record).  A Sheet     * object is constructed and passed back with all of its initialization set     * to the passed in records and references to those records held. This function     * is normally called via Workbook.     *     * @param recs array containing those records in the sheet in sequence (normally obtained from RecordFactory)     * @param sheetnum integer specifying the sheet's number (0,1 or 2 in this release)     * @param offset of the sheet's BOF record     *     * @return Sheet object with all values set to those read from the file     *     * @see org.apache.poi.hssf.model.Workbook     * @see org.apache.poi.hssf.record.Record     */    public static Sheet createSheet(List recs, int sheetnum, int offset)    {        if (log.check( POILogger.DEBUG ))            log.logFormatted(POILogger.DEBUG,                    "Sheet createSheet (existing file) with %",                    new Integer(recs.size()));        Sheet     retval             = new Sheet();        ArrayList records            = new ArrayList(recs.size() / 5);        boolean   isfirstcell        = true;        boolean   isfirstrow         = true;        int       bofEofNestingLevel = 0;        for (int k = offset; k < recs.size(); k++)        {            Record rec = ( Record ) recs.get(k);            if (rec.getSid() == LabelRecord.sid)            {                if (log.check( POILogger.DEBUG ))                    log.log(POILogger.DEBUG, "Hit label record.");                retval.containsLabels = true;            }            else if (rec.getSid() == BOFRecord.sid)            {                bofEofNestingLevel++;                if (log.check( POILogger.DEBUG ))                    log.log(POILogger.DEBUG, "Hit BOF record. Nesting increased to " + bofEofNestingLevel);            }            else if (rec.getSid() == EOFRecord.sid)            {                --bofEofNestingLevel;                if (log.check( POILogger.DEBUG ))                    log.log(POILogger.DEBUG, "Hit EOF record. Nesting decreased to " + bofEofNestingLevel);                if (bofEofNestingLevel == 0) {                    records.add(rec);                    retval.eofLoc = k;                    break;                }            }            else if (rec.getSid() == DimensionsRecord.sid)            {                // Make a columns aggregate if one hasn't ready been created.                if (retval.columns == null)                {                    retval.columns = new ColumnInfoRecordsAggregate();                    records.add(retval.columns);                }                retval.dims    = ( DimensionsRecord ) rec;                retval.dimsloc = records.size();            }            else if (rec.getSid() == MergeCellsRecord.sid)            {                retval.mergedRecords.add(rec);                retval.merged = ( MergeCellsRecord ) rec;                retval.numMergedRegions += retval.merged.getNumAreas();            }            else if (rec.getSid() == ColumnInfoRecord.sid)            {                ColumnInfoRecord col = (ColumnInfoRecord)rec;                if (retval.columns != null)                {                    rec = null; //only add the aggregate once                }                else                {                    rec = retval.columns = new ColumnInfoRecordsAggregate();                }                retval.columns.insertColumn(col);            }            else if (rec.getSid() == DefaultColWidthRecord.sid)            {                retval.defaultcolwidth = ( DefaultColWidthRecord ) rec;            }            else if (rec.getSid() == DefaultRowHeightRecord.sid)            {                retval.defaultrowheight = ( DefaultRowHeightRecord ) rec;            }            else if ( rec.isValue() && bofEofNestingLevel == 1 )            {                if ( isfirstcell )                {                    retval.cells = new ValueRecordsAggregate();                    rec = retval.cells;                    retval.cells.construct( k, recs );                    isfirstcell = false;                }                else                {                    rec = null;                }            }            else if ( rec.getSid() == StringRecord.sid )            {                rec = null;            }            else if ( rec.getSid() == RowRecord.sid )            {                RowRecord row = (RowRecord)rec;                if (!isfirstrow) rec = null; //only add the aggregate once                if ( isfirstrow )                {                    retval.rows = new RowRecordsAggregate();                    rec = retval.rows;                                        isfirstrow = false;                }                retval.rows.insertRow(row);            }            else if ( rec.getSid() == PrintGridlinesRecord.sid )            {                retval.printGridlines = (PrintGridlinesRecord) rec;            }            else if ( rec.getSid() == HeaderRecord.sid && bofEofNestingLevel == 1)            {                retval.header = (HeaderRecord) rec;            }            else if ( rec.getSid() == FooterRecord.sid && bofEofNestingLevel == 1)            {                retval.footer = (FooterRecord) rec;            }            else if ( rec.getSid() == PrintSetupRecord.sid && bofEofNestingLevel == 1)            {                retval.printSetup = (PrintSetupRecord) rec;            }            else if ( rec.getSid() == LeftMarginRecord.sid)            {                retval.getMargins()[LeftMargin] = (LeftMarginRecord) rec;            }            else if ( rec.getSid() == RightMarginRecord.sid)            {                retval.getMargins()[RightMargin] = (RightMarginRecord) rec;            }            else if ( rec.getSid() == TopMarginRecord.sid)            {                retval.getMargins()[TopMargin] = (TopMarginRecord) rec;            }            else if ( rec.getSid() == BottomMarginRecord.sid)            {                retval.getMargins()[BottomMargin] = (BottomMarginRecord) rec;            }            else if ( rec.getSid() == SelectionRecord.sid )            {                retval.selection = (SelectionRecord) rec;            }            else if ( rec.getSid() == WindowTwoRecord.sid )            {                retval.windowTwo = (WindowTwoRecord) rec;            }            else if ( rec.getSid() == DBCellRecord.sid )            {                rec = null;            }            else if ( rec.getSid() == IndexRecord.sid )            {                rec = null;            }            			else if ( rec.getSid() == ProtectRecord.sid )			{				retval.protect = (ProtectRecord) rec;			} 			else if (rec.getSid() == PageBreakRecord.HORIZONTAL_SID) 			{					retval.rowBreaks = (PageBreakRecord)rec;							}			else if (rec.getSid() == PageBreakRecord.VERTICAL_SID) 			{					retval.colBreaks = (PageBreakRecord)rec;							}                        if (rec != null)            {                records.add(rec);            }        }        retval.records = records;//        if (retval.rows == null)//        {//            retval.rows = new RowRecordsAggregate();//        }        retval.checkCells();        retval.checkRows();//        if (retval.cells == null)//        {//            retval.cells = new ValueRecordsAggregate();//        }        if (log.check( POILogger.DEBUG ))            log.log(POILogger.DEBUG, "sheet createSheet (existing file) exited");        return retval;    }    /**     * Clones the low level records of this sheet and returns the new sheet instance.     * This method is implemented by adding methods for deep cloning to all records that     * can be added to a sheet. The <b>Record</b> object does not implement cloneable.      * When adding a new record, implement a public clone method if and only if the record     * belongs to a sheet.      */    public Sheet cloneSheet()    {      ArrayList clonedRecords = new ArrayList(this.records.size());      for (int i=0; i<this.records.size();i++) {        Record rec = (Record)((Record)this.records.get(i)).clone();        //Need to pull out the Row record and the Value records from their        //Aggregates.        //This is probably the best way to do it since we probably dont want the createSheet        //To cater for these artificial Record types        if (rec instanceof RowRecordsAggregate) {          RowRecordsAggregate rrAgg = (RowRecordsAggregate)rec;          for (Iterator rowIter = rrAgg.getIterator();rowIter.hasNext();) {            Record rowRec = (Record)rowIter.next();            clonedRecords.add(rowRec);          }        } else if (rec instanceof ValueRecordsAggregate) {          ValueRecordsAggregate vrAgg = (ValueRecordsAggregate)rec;          for (Iterator cellIter = vrAgg.getIterator();cellIter.hasNext();) {            Record valRec = (Record)cellIter.next();                        if (valRec instanceof FormulaRecordAggregate) {                FormulaRecordAggregate fmAgg = (FormulaRecordAggregate)valRec;                Record fmAggRec = fmAgg.getFormulaRecord();                if (fmAggRec != null)                  clonedRecords.add(fmAggRec);                fmAggRec =   fmAgg.getStringRecord();                if (fmAggRec != null)                  clonedRecords.add(fmAggRec);              } else {                clonedRecords.add(valRec);              }          }        } else if (rec instanceof FormulaRecordAggregate) {  //Is this required now??          FormulaRecordAggregate fmAgg = (FormulaRecordAggregate)rec;          Record fmAggRec = fmAgg.getFormulaRecord();          if (fmAggRec != null)            clonedRecords.add(fmAggRec);          fmAggRec =   fmAgg.getStringRecord();          if (fmAggRec != null)            clonedRecords.add(fmAggRec);        } else {          clonedRecords.add(rec);        }      }      return createSheet(clonedRecords, 0, 0);    }    /**     * read support  (offset = 0) Same as createSheet(Record[] recs, int, int)     * only the record offset is assumed to be 0.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av免费在线播放| 国产三级精品三级在线专区| 91在线porny国产在线看| 成人性色生活片免费看爆迷你毛片| 亚洲成人精品一区| 国产欧美精品一区二区三区四区| 成人18视频在线播放| 国产iv一区二区三区| 韩国欧美国产1区| 国内精品伊人久久久久影院对白| 午夜精品久久久| 日本成人在线视频网站| 美日韩黄色大片| 99久久久免费精品国产一区二区| 在线观看亚洲精品视频| 日韩一区二区在线观看| 久久久噜噜噜久久人人看| 国产精品一区二区久久精品爱涩| 精品一区二区三区在线播放| 懂色一区二区三区免费观看| 91免费看`日韩一区二区| 日韩一区二区麻豆国产| 国产日韩精品一区二区三区| 亚洲精品国产成人久久av盗摄| 亚洲国产精品麻豆| 精一区二区三区| 波多野结衣亚洲一区| 日韩欧美国产综合一区| 亚洲欧美在线另类| 韩国成人福利片在线播放| 不卡的电视剧免费网站有什么| 欧美三级日韩三级国产三级| 国产日韩欧美电影| 亚洲成人av一区二区| 国v精品久久久网| 久久精品亚洲乱码伦伦中文| 国产精品每日更新| 国产精品一二三四区| 日韩精品一区二区在线| 香蕉久久一区二区不卡无毒影院 | 亚洲一区二区欧美| 精品一区二区三区免费观看| 色噜噜狠狠色综合欧洲selulu| 精品久久国产字幕高潮| 亚洲成年人网站在线观看| 成人91在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 久热成人在线视频| 亚洲特黄一级片| 日韩和欧美一区二区| 午夜精品123| www.欧美色图| 一区二区三区精品| 欧美美女喷水视频| 国产在线精品视频| 一二三四区精品视频| 欧美精品v国产精品v日韩精品 | 成人午夜免费电影| 亚洲一区二三区| 日韩精品一区二区三区在线观看| 狠狠狠色丁香婷婷综合激情| 欧美激情资源网| 欧美国产成人精品| 久久亚洲精品小早川怜子| 日本美女视频一区二区| 91精品黄色片免费大全| 极品销魂美女一区二区三区| 亚洲色欲色欲www在线观看| 51精品国自产在线| 欧美中文字幕一区二区三区| 亚洲国产综合在线| 欧美经典一区二区三区| 6080午夜不卡| 欧美综合一区二区三区| av激情成人网| 成人国产电影网| 国产成人免费av在线| 精品国产123| 国产jizzjizz一区二区| 七七婷婷婷婷精品国产| 玉足女爽爽91| 日韩一区二区免费在线电影| 欧美偷拍一区二区| 色老汉一区二区三区| 91久久一区二区| 99久久99久久久精品齐齐| 国产精品一区二区视频| 国产一区亚洲一区| 同产精品九九九| 日韩福利电影在线观看| 亚洲成人动漫在线免费观看| 亚洲一区二区三区四区在线免费观看| 国产精品久久毛片av大全日韩| 中文字幕欧美日韩一区| 亚洲欧洲日韩一区二区三区| 国产精品高潮呻吟久久| 欧美极品美女视频| ●精品国产综合乱码久久久久| 国产精品短视频| 亚洲国产成人porn| 91蜜桃免费观看视频| 欧美日韩视频在线第一区| 欧美亚州韩日在线看免费版国语版| 色综合久久天天综合网| 精品免费99久久| 日本一区二区动态图| 亚洲综合丝袜美腿| 风间由美一区二区三区在线观看 | 欧美日韩一区二区三区在线| 久久久三级国产网站| 亚洲欧美电影一区二区| 亚洲成av人片一区二区三区 | 欧美高清视频在线高清观看mv色露露十八 | 亚洲国产wwwccc36天堂| 日韩高清在线不卡| 99久久99久久免费精品蜜臀| 日韩午夜三级在线| 一级女性全黄久久生活片免费| 蜜桃精品视频在线| 91麻豆自制传媒国产之光| 亚洲国产美女搞黄色| 国内成人免费视频| 欧美色电影在线| 国产精品久久久久久久久果冻传媒| 亚洲一区二区三区四区在线观看| 国产成人激情av| 26uuu亚洲| www.欧美色图| 国产精品久久久久久久久免费桃花| 婷婷国产在线综合| 欧美影片第一页| 欧美国产禁国产网站cc| 日本欧美韩国一区三区| 色88888久久久久久影院野外| 国产蜜臀av在线一区二区三区| 一区二区三区日韩在线观看| 免费国产亚洲视频| 在线观看日产精品| 亚洲成人激情综合网| 欧美熟乱第一页| 日韩精品一级中文字幕精品视频免费观看 | 亚洲免费在线视频| 欧美三级午夜理伦三级中视频| 亚洲国产欧美另类丝袜| 亚洲精品在线三区| 色综合久久久久综合体| 久久久午夜电影| 99久久99久久久精品齐齐| 亚洲精品视频一区| 欧美精品久久天天躁| 高清不卡一二三区| 一区二区三区四区在线| 欧美午夜电影网| 秋霞影院一区二区| 欧美激情一区二区三区全黄| 91精品欧美久久久久久动漫 | 成人综合激情网| 欧美aaaaaa午夜精品| 亚洲免费在线视频一区 二区| 91精品国产综合久久精品图片| 激情综合色综合久久综合| 亚洲国产欧美日韩另类综合| 国产精品白丝在线| 国产精品色一区二区三区| 日韩美女在线视频| 欧美性猛片xxxx免费看久爱| 国产激情一区二区三区| 亚洲成人av一区| 综合激情网...| 亚洲综合一区二区| 一区二区三区精品在线观看| 久久一夜天堂av一区二区三区| 欧美日本视频在线| 欧美日韩国产首页在线观看| 色94色欧美sute亚洲线路一久| 91黄色在线观看| 欧美日韩1区2区| 日韩一级成人av| 欧美电影免费提供在线观看| 538prom精品视频线放| 69堂国产成人免费视频| 欧美日韩成人综合天天影院| 91精彩视频在线观看| 欧美三日本三级三级在线播放| 91麻豆国产在线观看| 色婷婷狠狠综合| 色一情一伦一子一伦一区| 91在线无精精品入口| 欧美乱熟臀69xxxxxx| 欧美一级高清片| 欧美成人a∨高清免费观看| 国产日韩精品一区二区三区 | 日韩欧美国产精品一区| 欧美精品久久天天躁| 欧美高清www午色夜在线视频| 欧美四级电影网| 久久综合五月天婷婷伊人| 中文av字幕一区| 亚洲国产精品久久久久秋霞影院| 国产一区二区三区精品视频|