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

📄 sheetreader.java

📁 实现JAVA界面的代码GWT
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                            catch(FormulaException e)
                            {
                                logger.warn(CellReferenceHelper.getCellReference(cell.getColumn(), cell.getRow()) + " " + e.getMessage());
                            }
                        }
                    } else
                    if(type == Type.LABEL)
                    {
                        LabelRecord lr = null;
                        if(workbookBof.isBiff8())
                            lr = new LabelRecord(r, formattingRecords, sheet, workbookSettings);
                        else
                            lr = new LabelRecord(r, formattingRecords, sheet, workbookSettings, LabelRecord.biff7);
                        addCell(lr);
                    } else
                    if(type == Type.RSTRING)
                    {
                        RStringRecord lr = null;
                        Assert.verify(!workbookBof.isBiff8());
                        lr = new RStringRecord(r, formattingRecords, sheet, workbookSettings, RStringRecord.biff7);
                        addCell(lr);
                    } else
                    if(type != Type.NAME)
                        if(type == Type.PASSWORD)
                        {
                            PasswordRecord pr = new PasswordRecord(r);
                            settings.setPasswordHash(pr.getPasswordHash());
                        } else
                        if(type == Type.ROW)
                        {
                            RowRecord rr = new RowRecord(r);
                            if(!rr.isDefaultHeight() || !rr.matchesDefaultFontHeight() || rr.isCollapsed() || rr.hasDefaultFormat())
                                rowProperties.add(rr);
                        } else
                        if(type == Type.BLANK)
                        {
                            if(!workbookSettings.getIgnoreBlanks())
                            {
                                BlankCell bc = new BlankCell(r, formattingRecords, sheet);
                                addCell(bc);
                            }
                        } else
                        if(type == Type.MULBLANK)
                        {
                            if(!workbookSettings.getIgnoreBlanks())
                            {
                                MulBlankRecord mulblank = new MulBlankRecord(r);
                                int num = mulblank.getNumberOfColumns();
                                int i = 0;
                                while(i < num) 
                                {
                                    int ixf = mulblank.getXFIndex(i);
                                    MulBlankCell mbc = new MulBlankCell(mulblank.getRow(), mulblank.getFirstColumn() + i, ixf, formattingRecords, sheet);
                                    addCell(mbc);
                                    i++;
                                }
                            }
                        } else
                        if(type == Type.SCL)
                        {
                            SCLRecord scl = new SCLRecord(r);
                            settings.setZoomFactor(scl.getZoomFactor());
                        } else
                        if(type == Type.COLINFO)
                        {
                            ColumnInfoRecord cir = new ColumnInfoRecord(r);
                            columnInfosArray.add(cir);
                        } else
                        if(type == Type.HEADER)
                        {
                            HeaderRecord hr = null;
                            if(workbookBof.isBiff8())
                                hr = new HeaderRecord(r, workbookSettings);
                            else
                                hr = new HeaderRecord(r, workbookSettings, HeaderRecord.biff7);
                            HeaderFooter header = new HeaderFooter(hr.getHeader());
                            settings.setHeader(header);
                        } else
                        if(type == Type.FOOTER)
                        {
                            FooterRecord fr = null;
                            if(workbookBof.isBiff8())
                                fr = new FooterRecord(r, workbookSettings);
                            else
                                fr = new FooterRecord(r, workbookSettings, FooterRecord.biff7);
                            HeaderFooter footer = new HeaderFooter(fr.getFooter());
                            settings.setFooter(footer);
                        } else
                        if(type == Type.SETUP)
                        {
                            SetupRecord sr = new SetupRecord(r);
                            if(sr.isPortrait())
                                settings.setOrientation(PageOrientation.PORTRAIT);
                            else
                                settings.setOrientation(PageOrientation.LANDSCAPE);
                            settings.setPaperSize(PaperSize.getPaperSize(sr.getPaperSize()));
                            settings.setHeaderMargin(sr.getHeaderMargin());
                            settings.setFooterMargin(sr.getFooterMargin());
                            settings.setScaleFactor(sr.getScaleFactor());
                            settings.setPageStart(sr.getPageStart());
                            settings.setFitWidth(sr.getFitWidth());
                            settings.setFitHeight(sr.getFitHeight());
                            settings.setHorizontalPrintResolution(sr.getHorizontalPrintResolution());
                            settings.setVerticalPrintResolution(sr.getVerticalPrintResolution());
                            settings.setCopies(sr.getCopies());
                            if(workspaceOptions != null)
                                settings.setFitToPages(workspaceOptions.getFitToPages());
                        } else
                        if(type == Type.WSBOOL)
                            workspaceOptions = new WorkspaceInformationRecord(r);
                        else
                        if(type == Type.DEFCOLWIDTH)
                        {
                            DefaultColumnWidthRecord dcwr = new DefaultColumnWidthRecord(r);
                            settings.setDefaultColumnWidth(dcwr.getWidth());
                        } else
                        if(type == Type.DEFAULTROWHEIGHT)
                        {
                            DefaultRowHeightRecord drhr = new DefaultRowHeightRecord(r);
                            if(drhr.getHeight() != 0)
                                settings.setDefaultRowHeight(drhr.getHeight());
                        } else
                        if(type == Type.LEFTMARGIN)
                        {
                            MarginRecord m = new LeftMarginRecord(r);
                            settings.setLeftMargin(m.getMargin());
                        } else
                        if(type == Type.RIGHTMARGIN)
                        {
                            MarginRecord m = new RightMarginRecord(r);
                            settings.setRightMargin(m.getMargin());
                        } else
                        if(type == Type.TOPMARGIN)
                        {
                            MarginRecord m = new TopMarginRecord(r);
                            settings.setTopMargin(m.getMargin());
                        } else
                        if(type == Type.BOTTOMMARGIN)
                        {
                            MarginRecord m = new BottomMarginRecord(r);
                            settings.setBottomMargin(m.getMargin());
                        } else
                        if(type == Type.HORIZONTALPAGEBREAKS)
                        {
                            HorizontalPageBreaksRecord dr = null;
                            if(workbookBof.isBiff8())
                                dr = new HorizontalPageBreaksRecord(r);
                            else
                                dr = new HorizontalPageBreaksRecord(r, HorizontalPageBreaksRecord.biff7);
                            rowBreaks = dr.getRowBreaks();
                        } else
                        if(type == Type.VERTICALPAGEBREAKS)
                        {
                            VerticalPageBreaksRecord dr = null;
                            if(workbookBof.isBiff8())
                                dr = new VerticalPageBreaksRecord(r);
                            else
                                dr = new VerticalPageBreaksRecord(r, VerticalPageBreaksRecord.biff7);
                            columnBreaks = dr.getColumnBreaks();
                        } else
                        if(type == Type.PLS)
                            plsRecord = new PLSRecord(r);
                        else
                        if(type == Type.DVAL)
                        {
                            if(!workbookSettings.getCellValidationDisabled())
                            {
                                DataValidityListRecord dvlr = new DataValidityListRecord(r);
                                if(dvlr.getObjectId() == -1)
                                {
                                    if(msoRecord != null && objRecord == null)
                                    {
                                        if(drawingData == null)
                                            drawingData = new DrawingData();
                                        Drawing2 d2 = new Drawing2(msoRecord, drawingData, workbook.getDrawingGroup());
                                        drawings.add(d2);
                                        msoRecord = null;
                                        dataValidation = new DataValidation(dvlr);
                                    } else
                                    {
                                        dataValidation = new DataValidation(dvlr);
                                    }
                                } else
                                if(objectIds.contains(new Integer(dvlr.getObjectId())))
                                    dataValidation = new DataValidation(dvlr);
                                else
                                    logger.warn("object id " + dvlr.getObjectId() + " referenced " + " by data validity list record not found - ignoring");
                            }
                        } else
                        if(type == Type.HCENTER)
                        {
                            CentreRecord hr = new CentreRecord(r);
                            settings.setHorizontalCentre(hr.isCentre());
                        } else
                        if(type == Type.VCENTER)
                        {
                            CentreRecord vc = new CentreRecord(r);
                            settings.setVerticalCentre(vc.isCentre());
                        } else
                        if(type == Type.DV)
                        {
                            if(!workbookSettings.getCellValidationDisabled())
                            {
                                DataValiditySettingsRecord dvsr = new DataValiditySettingsRecord(r, workbook, workbook, workbook.getSettings());
                                if(dataValidation != null)
                                {
                                    dataValidation.add(dvsr);
                                    addCellValidation(dvsr.getFirstColumn(), dvsr.getFirstRow(), dvsr.getLastColumn(), dvsr.getLastRow(), dvsr);
                                } else
                                {
                                    logger.warn("cannot add data validity settings");
                                }
                            }
                        } else
                        if(type == Type.OBJ)
                        {
                            objRecord = new ObjRecord(r);
                            if(!workbookSettings.getDrawingsDisabled())
                            {
                                handleObjectRecord(objRecord, msoRecord, comments);
                                objectIds.add(new Integer(objRecord.getObjectId()));
                            }
                            if(objRecord.getType() != ObjRecord.CHART)
                            {
                                objRecord = null;
                                msoRecord = null;
                            }
                        } else
                        if(type == Type.MSODRAWING)
                        {
                            if(!workbookSettings.getDrawingsDisabled())
                            {
                                if(msoRecord != null)
                                    drawingData.addRawData(msoRecord.getData());
                                msoRecord = new MsoDrawingRecord(r);
                                if(firstMsoRecord)
                                {
                                    msoRecord.setFirst();
                                    firstMsoRecord = false;
                                }
                            }
                        } else
                        if(type == Type.BUTTONPROPERTYSET)
                            buttonPropertySet = new ButtonPropertySetRecord(r);
                        else
                        if(type == Type.CALCMODE)
                        {
                            CalcModeRecord cmr = new CalcModeRecord(r);
                            settings.setAutomaticFormulaCalculation(cmr.isAutomatic());
                        } else
                        if(type == Type.SAVERECALC)
                        {
                            SaveRecalcRecord cmr = new SaveRecalcRecord(r);
                            settings.setRecalculateFormulasBeforeSave(cmr.getRecalculateOnSave());
                        } else
                        if(type == Type.BOF)
                        {
                            BOFRecord br = new BOFRecord(r);
                            Assert.verify(!br.isWorksheet());
                            int startpos = excelFile.getPos() - r.getLength() - 4;
                            for(Record r2 = excelFile.next(); r2.getCode() != Type.EOF.value; r2 = excelFile.next());
                            if(br.isChart())
                            {
                                if(!workbook.getWorkbookBof().isBiff8())
                                {
                                    logger.warn("only biff8 charts are supported");
                                } else
                                {
                                    if(drawingData == null)
                                        drawingData = new DrawingData();
                                    if(!workbookSettings.getDrawingsDisabled())
                                    {
                                        Chart chart = new Chart(msoRecord, objRecord, drawingData, startpos, excelFile.getPos(), excelFile, workbookSettings);
                                        charts.add(chart);
                                        if(workbook.getDrawingGroup() != null)
                                            workbook.getDrawingGroup().add(chart);
                                    }
                                }
                                msoRecord = null;
                                objRecord = null;
                            }
                            if(sheetBof.isChart())
                                cont = false;
                        } else
                        if(type == Type.EOF)
                            cont = false;
        } while(true);
        excelFile.restorePos();
        if(outOfBoundsCells.size() > 0)
            handleOutOfBoundsCells();
        for(Iterator i = sharedFormulas.iterator(); i.hasNext();)
        {
            SharedFormulaRecord sfr = (SharedFormulaRecord)i.next();
            Cell sfnr[] = sfr.getFormulas(formattingRecords, nineteenFour);
            int sf = 0;
            while(sf < sfnr.length) 
            {
                addCell(sfnr[sf]);
                sf++;
            }
        }

        if(!sharedFormulaAdded && sharedFormula != null)
            addCell(revertSharedFormula(sharedFormula));
        if(msoRecord != null && workbook.getDrawingGroup() != null)
            workbook.getDrawingGroup().setDrawingsOmitted(msoRecord, objRecord);
        if(!comments.isEmpty())
            logger.warn("Not all comments have a corresponding Note record");
    }

    private boolean addToSharedFormulas(BaseSharedFormulaRecord fr)
    {
        boolean added = false;
        SharedFormulaRecord sfr = null;
        int i = 0;
        for(int size = sharedFormulas.size(); i < size && !added; i++)
        {
            sfr = (SharedFormulaRecord)sharedFormulas.get(i);
            added = sfr.add(fr);
        }

        return added;
    }

⌨️ 快捷键说明

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