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

📄 sheetreader.java

📁 jxtl API Java中Excel的生成与导入解析参考文档
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        // Get the individual cell records from the multiple record        int num = mulrk.getNumberOfColumns();        int ixf = 0;        for (int i = 0; i < num; i++)        {          ixf = mulrk.getXFIndex(i);          NumberValue nv = new NumberValue            (mulrk.getRow(),             mulrk.getFirstColumn() + i,             RKHelper.getDouble(mulrk.getRKNumber(i)),             ixf,             formattingRecords,             sheet);          if (formattingRecords.isDate(ixf))          {            DateCell dc = new DateRecord(nv,                                          ixf,                                          formattingRecords,                                         nineteenFour,                                          sheet);            addCell(dc);          }          else          {            nv.setNumberFormat(formattingRecords.getNumberFormat(ixf));            addCell(nv);          }        }      }      else if (type == Type.NUMBER)      {        NumberRecord nr = new NumberRecord(r, formattingRecords, sheet);        if (formattingRecords.isDate(nr.getXFIndex()))        {          DateCell dc = new DateRecord(nr,                                       nr.getXFIndex(),                                       formattingRecords,                                       nineteenFour, sheet);          addCell(dc);        }        else        {          addCell(nr);        }      }      else if (type == Type.BOOLERR)      {        BooleanRecord br = new BooleanRecord(r, formattingRecords, sheet);        if (br.isError())        {          ErrorRecord er = new ErrorRecord(br.getRecord(), formattingRecords,                                           sheet);          addCell(er);        }        else        {          addCell(br);        }      }      else if (type == Type.PRINTGRIDLINES)      {        printGridLinesRecord = new PrintGridLinesRecord(r);        settings.setPrintGridLines(printGridLinesRecord.getPrintGridLines());      }      else if (type == Type.PRINTHEADERS)      {        printHeadersRecord = new PrintHeadersRecord(r);        settings.setPrintHeaders(printHeadersRecord.getPrintHeaders());      }      else if (type == Type.WINDOW2)      {        window2Record = null;        if (workbookBof.isBiff8())        {          window2Record = new Window2Record(r);        }        else        {          window2Record = new Window2Record(r, Window2Record.biff7);        }        settings.setShowGridLines(window2Record.getShowGridLines());        settings.setDisplayZeroValues(window2Record.getDisplayZeroValues());        settings.setSelected(true);        settings.setPageBreakPreviewMode(window2Record.isPageBreakPreview());      }      else if (type == Type.PANE)      {        PaneRecord pr = new PaneRecord(r);        if (window2Record != null &&            window2Record.getFrozen())        {          settings.setVerticalFreeze(pr.getRowsVisible());          settings.setHorizontalFreeze(pr.getColumnsVisible());        }      }      else if (type == Type.CONTINUE)      {        // don't know what this is for, but keep hold of it anyway        continueRecord = new ContinueRecord(r);      }      else if (type == Type.NOTE)      {        if (!workbookSettings.getDrawingsDisabled())        {          NoteRecord nr = new NoteRecord(r);          // Get the comment for the object id          Comment comment = (Comment) comments.remove            (new Integer(nr.getObjectId()));          if (comment == null)          {            logger.warn(" cannot find comment for note id " +                        nr.getObjectId() + "...ignoring");          }          else          {            comment.setNote(nr);            drawings.add(comment);            addCellComment(comment.getColumn(),                           comment.getRow(),                           comment.getText(),                           comment.getWidth(),                           comment.getHeight());          }        }      }      else if (type == Type.ARRAY)      {        ;      }      else if (type == Type.PROTECT)      {        ProtectRecord pr = new ProtectRecord(r);        settings.setProtected(pr.isProtected());      }      else if (type == Type.SHAREDFORMULA)      {        if (sharedFormula == null)        {          logger.warn("Shared template formula is null - " +                      "trying most recent formula template");          SharedFormulaRecord lastSharedFormula =            (SharedFormulaRecord) sharedFormulas.get(sharedFormulas.size() - 1);          if (lastSharedFormula != null)          {            sharedFormula = lastSharedFormula.getTemplateFormula();          }        }        SharedFormulaRecord sfr = new SharedFormulaRecord          (r, sharedFormula, workbook, workbook, sheet);        sharedFormulas.add(sfr);        sharedFormula = null;      }      else if (type == Type.FORMULA || type == Type.FORMULA2)      {        FormulaRecord fr = new FormulaRecord(r,                                             excelFile,                                             formattingRecords,                                             workbook,                                             workbook,                                             sheet,                                             workbookSettings);        if (fr.isShared())        {          BaseSharedFormulaRecord prevSharedFormula = sharedFormula;          sharedFormula = (BaseSharedFormulaRecord) fr.getFormula();          // See if it fits in any of the shared formulas          sharedFormulaAdded = addToSharedFormulas(sharedFormula);          if (sharedFormulaAdded)          {            sharedFormula = prevSharedFormula;          }          // If we still haven't added the previous base shared formula,          // revert it to an ordinary formula and add it to the cell          if (!sharedFormulaAdded && prevSharedFormula != null)          {            // Do nothing.  It's possible for the biff file to contain the            // record sequence            // FORMULA-SHRFMLA-FORMULA-SHRFMLA-FORMULA-FORMULA-FORMULA            // ie. it first lists all the formula templates, then it            // lists all the individual formulas            addCell(revertSharedFormula(prevSharedFormula));          }        }        else        {          Cell cell = fr.getFormula();          try          {            // See if the formula evaluates to date            if (fr.getFormula().getType() == CellType.NUMBER_FORMULA)            {              NumberFormulaRecord nfr = (NumberFormulaRecord) fr.getFormula();              if (formattingRecords.isDate(nfr.getXFIndex()))              {                cell = new DateFormulaRecord(nfr,                                             formattingRecords,                                             workbook,                                             workbook,                                             nineteenFour,                                             sheet);              }            }                        addCell(cell);          }          catch (FormulaException e)          {            // Something has gone wrong trying to read the formula data eg. it            // might be unsupported biff7 data            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;        // RString records are obsolete in biff 8        Assert.verify(!workbookBof.isBiff8());        lr = new RStringRecord(r, formattingRecords,                               sheet, workbookSettings,                               RStringRecord.biff7);        addCell(lr);      }      else if (type == Type.NAME)      {        ;      }      else if (type == Type.PASSWORD)      {        PasswordRecord pr = new PasswordRecord(r);        settings.setPasswordHash(pr.getPasswordHash());      }      else if (type == Type.ROW)      {        RowRecord rr = new RowRecord(r);        // See if the row has anything funny about it        if (!rr.isDefaultHeight() ||            !rr.matchesDefaultFontHeight() ||            rr.isCollapsed() ||            rr.hasDefaultFormat() ||             rr.getOutlineLevel() != 0)        {          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);          // Get the individual cell records from the multiple record          int num = mulblank.getNumberOfColumns();          for (int i = 0; i < num; i++)          {            int ixf = mulblank.getXFIndex(i);            MulBlankCell mbc = new MulBlankCell              (mulblank.getRow(),               mulblank.getFirstColumn() + i,               ixf,               formattingRecords,               sheet);                        addCell(mbc);          }        }      }      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.CONDFMT)      {        condFormat = new ConditionalFormatRangeRecord(r);      }      else if (type == Type.CF)      {        ConditionalFormatRecord cfr = new ConditionalFormatRecord(r);        ConditionalFormat cf = new ConditionalFormat(condFormat, cfr);        conditionalFormats.add(cf);        condFormat = null;      }      else if (type == Type.FILTERMODE)      {        filterMode = new FilterModeRecord(r);      }      else if (type == Type.AUTOFILTERINFO)      {        autoFilterInfo = new AutoFilterInfoRecord(r);      }       else if (type == Type.AUTOFILTER)      {        if (!workbookSettings.getAutoFilterDisabled())        {          AutoFilterRecord af = new AutoFilterRecord(r);          if (autoFilter == null)          {            autoFilter = new AutoFilter(filterMode, autoFilterInfo);            filterMode = null;            autoFilterInfo = null;          }          autoFilter.add(af);        }      }      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())

⌨️ 快捷键说明

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