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

📄 sheetwriter.java

📁 主要介绍snmp编程的一些例子对于snmp编程的人非常重要
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   SheetWriter.java

package jxl.write.biff;

import common.Assert;
import common.Logger;
import java.io.IOException;
import java.util.*;
import jxl.*;
import jxl.biff.*;
import jxl.biff.drawing.*;
import jxl.format.*;
import jxl.write.*;

// Referenced classes of package jxl.write.biff:
//            BOFRecord, IndexRecord, CalcModeRecord, CalcCountRecord, 
//            RefModeRecord, IterationRecord, DeltaRecord, SaveRecalcRecord, 
//            PrintHeadersRecord, PrintGridLinesRecord, GridSetRecord, GuttersRecord, 
//            DefaultRowHeightRecord, HorizontalPageBreaksRecord, VerticalPageBreaksRecord, HeaderRecord, 
//            FooterRecord, HorizontalCentreRecord, VerticalCentreRecord, LeftMarginRecord, 
//            RightMarginRecord, TopMarginRecord, BottomMarginRecord, SetupRecord, 
//            ProtectRecord, ScenarioProtectRecord, ObjectProtectRecord, PasswordRecord, 
//            DefaultColumnWidth, ColumnInfoRecord, DimensionRecord, DBCellRecord, 
//            Window2Record, PaneRecord, SelectionRecord, Weird1Record, 
//            SCLRecord, EOFRecord, CellXFRecord, CellValue, 
//            File, WritableSheetImpl, WritableWorkbookImpl, Styles, 
//            RowRecord, MergedCells, PLSRecord, ButtonPropertySetRecord

final class SheetWriter
{

    private static Logger logger;
    private File outputFile;
    private RowRecord rows[];
    private int numRows;
    private int numCols;
    private HeaderRecord header;
    private FooterRecord footer;
    private SheetSettings settings;
    private WorkbookSettings workbookSettings;
    private ArrayList rowBreaks;
    private ArrayList columnBreaks;
    private ArrayList hyperlinks;
    private ArrayList validatedCells;
    private DataValidation dataValidation;
    private MergedCells mergedCells;
    private PLSRecord plsRecord;
    private ButtonPropertySetRecord buttonPropertySet;
    private WorkspaceInformationRecord workspaceOptions;
    private TreeSet columnFormats;
    private SheetDrawingWriter drawingWriter;
    private boolean chartOnly;
    private WritableSheetImpl sheet;
    static Class class$jxl$write$biff$SheetWriter; /* synthetic field */

    public SheetWriter(File of, WritableSheetImpl wsi, WorkbookSettings ws)
    {
        outputFile = of;
        sheet = wsi;
        workspaceOptions = new WorkspaceInformationRecord();
        workbookSettings = ws;
        chartOnly = false;
        drawingWriter = new SheetDrawingWriter(ws);
    }

    public void write()
        throws IOException
    {
        Assert.verify(rows != null);
        if(chartOnly)
        {
            drawingWriter.write(outputFile);
            return;
        }
        BOFRecord bof = new BOFRecord(BOFRecord.sheet);
        outputFile.write(bof);
        int numBlocks = numRows / 32;
        if(numRows - numBlocks * 32 != 0)
            numBlocks++;
        int indexPos = outputFile.getPos();
        IndexRecord indexRecord = new IndexRecord(0, numRows, numBlocks);
        outputFile.write(indexRecord);
        if(settings.getAutomaticFormulaCalculation())
        {
            CalcModeRecord cmr = new CalcModeRecord(CalcModeRecord.automatic);
            outputFile.write(cmr);
        } else
        {
            CalcModeRecord cmr = new CalcModeRecord(CalcModeRecord.manual);
            outputFile.write(cmr);
        }
        CalcCountRecord ccr = new CalcCountRecord(100);
        outputFile.write(ccr);
        RefModeRecord rmr = new RefModeRecord();
        outputFile.write(rmr);
        IterationRecord itr = new IterationRecord(false);
        outputFile.write(itr);
        DeltaRecord dtr = new DeltaRecord(0.001D);
        outputFile.write(dtr);
        SaveRecalcRecord srr = new SaveRecalcRecord(settings.getRecalculateFormulasBeforeSave());
        outputFile.write(srr);
        PrintHeadersRecord phr = new PrintHeadersRecord(settings.getPrintHeaders());
        outputFile.write(phr);
        PrintGridLinesRecord pglr = new PrintGridLinesRecord(settings.getPrintGridLines());
        outputFile.write(pglr);
        GridSetRecord gsr = new GridSetRecord(true);
        outputFile.write(gsr);
        GuttersRecord gutr = new GuttersRecord();
        outputFile.write(gutr);
        DefaultRowHeightRecord drhr = new DefaultRowHeightRecord(settings.getDefaultRowHeight(), settings.getDefaultRowHeight() != 255);
        outputFile.write(drhr);
        workspaceOptions.setFitToPages(settings.getFitToPages());
        outputFile.write(workspaceOptions);
        if(rowBreaks.size() > 0)
        {
            int rb[] = new int[rowBreaks.size()];
            for(int i = 0; i < rb.length; i++)
                rb[i] = ((Integer)rowBreaks.get(i)).intValue();

            HorizontalPageBreaksRecord hpbr = new HorizontalPageBreaksRecord(rb);
            outputFile.write(hpbr);
        }
        if(columnBreaks.size() > 0)
        {
            int rb[] = new int[columnBreaks.size()];
            for(int i = 0; i < rb.length; i++)
                rb[i] = ((Integer)columnBreaks.get(i)).intValue();

            VerticalPageBreaksRecord hpbr = new VerticalPageBreaksRecord(rb);
            outputFile.write(hpbr);
        }
        HeaderRecord header = new HeaderRecord(settings.getHeader().toString());
        outputFile.write(header);
        FooterRecord footer = new FooterRecord(settings.getFooter().toString());
        outputFile.write(footer);
        HorizontalCentreRecord hcr = new HorizontalCentreRecord(settings.isHorizontalCentre());
        outputFile.write(hcr);
        VerticalCentreRecord vcr = new VerticalCentreRecord(settings.isVerticalCentre());
        outputFile.write(vcr);
        if(settings.getLeftMargin() != settings.getDefaultWidthMargin())
        {
            MarginRecord mr = new LeftMarginRecord(settings.getLeftMargin());
            outputFile.write(mr);
        }
        if(settings.getRightMargin() != settings.getDefaultWidthMargin())
        {
            MarginRecord mr = new RightMarginRecord(settings.getRightMargin());
            outputFile.write(mr);
        }
        if(settings.getTopMargin() != settings.getDefaultHeightMargin())
        {
            MarginRecord mr = new TopMarginRecord(settings.getTopMargin());
            outputFile.write(mr);
        }
        if(settings.getBottomMargin() != settings.getDefaultHeightMargin())
        {
            MarginRecord mr = new BottomMarginRecord(settings.getBottomMargin());
            outputFile.write(mr);
        }
        if(plsRecord != null)
            outputFile.write(plsRecord);
        SetupRecord setup = new SetupRecord(settings);
        outputFile.write(setup);
        if(settings.isProtected())
        {
            ProtectRecord pr = new ProtectRecord(settings.isProtected());
            outputFile.write(pr);
            ScenarioProtectRecord spr = new ScenarioProtectRecord(settings.isProtected());
            outputFile.write(spr);
            ObjectProtectRecord opr = new ObjectProtectRecord(settings.isProtected());
            outputFile.write(opr);
            if(settings.getPassword() != null)
            {
                PasswordRecord pw = new PasswordRecord(settings.getPassword());
                outputFile.write(pw);
            } else
            if(settings.getPasswordHash() != 0)
            {
                PasswordRecord pw = new PasswordRecord(settings.getPasswordHash());
                outputFile.write(pw);
            }
        }
        indexRecord.setDataStartPosition(outputFile.getPos());
        DefaultColumnWidth dcw = new DefaultColumnWidth(settings.getDefaultColumnWidth());
        outputFile.write(dcw);
        jxl.write.WritableCellFormat normalStyle = sheet.getWorkbook().getStyles().getNormalStyle();
        jxl.write.WritableCellFormat defaultDateFormat = sheet.getWorkbook().getStyles().getDefaultDateFormat();
        ColumnInfoRecord cir = null;
        Iterator colit = columnFormats.iterator();
        do
        {
            if(!colit.hasNext())
                break;
            cir = (ColumnInfoRecord)colit.next();
            if(cir.getColumn() < 256)
                outputFile.write(cir);
            XFRecord xfr = cir.getCellFormat();
            if(xfr != normalStyle && cir.getColumn() < 256)
            {
                Cell cells[] = getColumn(cir.getColumn());
                int i = 0;
                while(i < cells.length) 
                {
                    if(cells[i] != null && (cells[i].getCellFormat() == normalStyle || cells[i].getCellFormat() == defaultDateFormat))
                        ((WritableCell)cells[i]).setCellFormat(xfr);
                    i++;
                }
            }
        } while(true);
        DimensionRecord dr = new DimensionRecord(numRows, numCols);
        outputFile.write(dr);
        for(int block = 0; block < numBlocks; block++)
        {
            DBCellRecord dbcell = new DBCellRecord(outputFile.getPos());
            int blockRows = Math.min(32, numRows - block * 32);
            boolean firstRow = true;
            for(int i = block * 32; i < block * 32 + blockRows; i++)
            {
                if(rows[i] == null)
                    continue;
                rows[i].write(outputFile);
                if(firstRow)
                {
                    dbcell.setCellOffset(outputFile.getPos());
                    firstRow = false;
                }
            }

            for(int i = block * 32; i < block * 32 + blockRows; i++)
                if(rows[i] != null)
                {
                    dbcell.addCellRowPosition(outputFile.getPos());
                    rows[i].writeCells(outputFile);
                }

            indexRecord.addBlockPosition(outputFile.getPos());
            dbcell.setPosition(outputFile.getPos());
            outputFile.write(dbcell);
        }

        if(!workbookSettings.getDrawingsDisabled())
            drawingWriter.write(outputFile);
        Window2Record w2r = new Window2Record(settings);
        outputFile.write(w2r);
        if(settings.getHorizontalFreeze() != 0 || settings.getVerticalFreeze() != 0)
        {
            PaneRecord pr = new PaneRecord(settings.getHorizontalFreeze(), settings.getVerticalFreeze());
            outputFile.write(pr);
            SelectionRecord sr = new SelectionRecord(SelectionRecord.upperLeft, 0, 0);
            outputFile.write(sr);
            if(settings.getHorizontalFreeze() != 0)
            {
                sr = new SelectionRecord(SelectionRecord.upperRight, settings.getHorizontalFreeze(), 0);
                outputFile.write(sr);
            }
            if(settings.getVerticalFreeze() != 0)
            {
                sr = new SelectionRecord(SelectionRecord.lowerLeft, 0, settings.getVerticalFreeze());
                outputFile.write(sr);
            }
            if(settings.getHorizontalFreeze() != 0 && settings.getVerticalFreeze() != 0)
            {
                sr = new SelectionRecord(SelectionRecord.lowerRight, settings.getHorizontalFreeze(), settings.getVerticalFreeze());
                outputFile.write(sr);
            }
            Weird1Record w1r = new Weird1Record();
            outputFile.write(w1r);
        } else
        {
            SelectionRecord sr = new SelectionRecord(SelectionRecord.upperLeft, 0, 0);
            outputFile.write(sr);
        }
        if(settings.getZoomFactor() != 100)
        {
            SCLRecord sclr = new SCLRecord(settings.getZoomFactor());
            outputFile.write(sclr);
        }
        mergedCells.write(outputFile);
        Iterator hi = hyperlinks.iterator();
        WritableHyperlink hlr = null;
        for(; hi.hasNext(); outputFile.write(hlr))
            hlr = (WritableHyperlink)hi.next();

        if(buttonPropertySet != null)
            outputFile.write(buttonPropertySet);
        if(dataValidation != null || validatedCells.size() > 0)
            writeDataValidation();
        EOFRecord eof = new EOFRecord();
        outputFile.write(eof);
        outputFile.setData(indexRecord.getData(), indexPos + 4);

⌨️ 快捷键说明

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