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

📄 writableworkbookimpl.java

📁 实现JAVA界面的代码GWT
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            }

            outputFile.write(externSheet);
        }
        if(names != null)
        {
            for(int i = 0; i < names.size(); i++)
            {
                jxl.write.biff.NameRecord n = (jxl.write.biff.NameRecord)names.get(i);
                outputFile.write(n);
            }

        }
        if(drawingGroup != null)
            drawingGroup.write(outputFile);
        sharedStrings.write(outputFile);
        EOFRecord eof = new EOFRecord();
        outputFile.write(eof);
        boolean sheetSelected = false;
        WritableSheetImpl wsheet = null;
        for(int i = 0; i < getNumberOfSheets() && !sheetSelected; i++)
        {
            wsheet = (WritableSheetImpl)getSheet(i);
            if(wsheet.getSettings().isSelected())
                sheetSelected = true;
        }

        if(!sheetSelected)
        {
            wsheet = (WritableSheetImpl)getSheet(0);
            wsheet.getSettings().setSelected(true);
        }
        for(int i = 0; i < getNumberOfSheets(); i++)
        {
            outputFile.setData(IntegerHelper.getFourBytes(outputFile.getPos()), boundsheetPos[i] + 4);
            wsheet = (WritableSheetImpl)getSheet(i);
            wsheet.write();
        }

    }

    private void copyWorkbook(Workbook w)
    {
        int numSheets = w.getNumberOfSheets();
        wbProtected = w.isProtected();
        Sheet s = null;
        WritableSheetImpl ws = null;
        for(int i = 0; i < numSheets; i++)
        {
            s = w.getSheet(i);
            ws = (WritableSheetImpl)createSheet(s.getName(), i, false);
            ws.copy(s);
        }

    }

    public void copySheet(int s, String name, int index)
    {
        WritableSheet sheet = getSheet(s);
        WritableSheetImpl ws = (WritableSheetImpl)createSheet(name, index);
        ws.copy(sheet);
    }

    public void copySheet(String s, String name, int index)
    {
        WritableSheet sheet = getSheet(s);
        WritableSheetImpl ws = (WritableSheetImpl)createSheet(name, index);
        ws.copy(sheet);
    }

    public void setProtected(boolean prot)
    {
        wbProtected = prot;
    }

    private void rationalize()
    {
        jxl.biff.IndexMapping fontMapping = formatRecords.rationalizeFonts();
        jxl.biff.IndexMapping formatMapping = formatRecords.rationalizeDisplayFormats();
        jxl.biff.IndexMapping xfMapping = formatRecords.rationalize(fontMapping, formatMapping);
        WritableSheetImpl wsi = null;
        for(int i = 0; i < sheets.size(); i++)
        {
            wsi = (WritableSheetImpl)sheets.get(i);
            wsi.rationalize(xfMapping, fontMapping, formatMapping);
        }

    }

    public String getExternalSheetName(int index)
    {
        int supbookIndex = externSheet.getSupbookIndex(index);
        jxl.write.biff.SupbookRecord sr = (jxl.write.biff.SupbookRecord)supbooks.get(supbookIndex);
        int firstTab = externSheet.getFirstTabIndex(index);
        if(sr.getType() == SupbookRecord.INTERNAL)
        {
            WritableSheet ws = getSheet(firstTab);
            return ws.getName();
        }
        if(sr.getType() == SupbookRecord.EXTERNAL)
        {
            String name = sr.getFileName() + sr.getSheetName(firstTab);
            return name;
        } else
        {
            return "[UNKNOWN]";
        }
    }

    public String getLastExternalSheetName(int index)
    {
        int supbookIndex = externSheet.getSupbookIndex(index);
        jxl.write.biff.SupbookRecord sr = (jxl.write.biff.SupbookRecord)supbooks.get(supbookIndex);
        int lastTab = externSheet.getLastTabIndex(index);
        if(sr.getType() == SupbookRecord.INTERNAL)
        {
            WritableSheet ws = getSheet(lastTab);
            return ws.getName();
        }
        if(sr.getType() == SupbookRecord.EXTERNAL)
            Assert.verify(false);
        return "[UNKNOWN]";
    }

    public BOFRecord getWorkbookBof()
    {
        return null;
    }

    public int getExternalSheetIndex(int index)
    {
        if(externSheet == null)
        {
            return index;
        } else
        {
            Assert.verify(externSheet != null);
            int firstTab = externSheet.getFirstTabIndex(index);
            return firstTab;
        }
    }

    public int getLastExternalSheetIndex(int index)
    {
        if(externSheet == null)
        {
            return index;
        } else
        {
            Assert.verify(externSheet != null);
            int lastTab = externSheet.getLastTabIndex(index);
            return lastTab;
        }
    }

    public int getExternalSheetIndex(String sheetName)
    {
        if(externSheet == null)
        {
            externSheet = new ExternalSheetRecord();
            supbooks = new ArrayList();
            supbooks.add(new jxl.write.biff.SupbookRecord(getNumberOfSheets(), settings));
        }
        boolean found = false;
        Iterator i = sheets.iterator();
        int sheetpos = 0;
        WritableSheetImpl s = null;
        while(i.hasNext() && !found) 
        {
            s = (WritableSheetImpl)i.next();
            if(s.getName().equals(sheetName))
                found = true;
            else
                sheetpos++;
        }
        if(found)
        {
            jxl.write.biff.SupbookRecord supbook = (jxl.write.biff.SupbookRecord)supbooks.get(0);
            if(supbook.getType() != SupbookRecord.INTERNAL || supbook.getNumberOfSheets() != getNumberOfSheets())
                logger.warn("Cannot find sheet " + sheetName + " in supbook record");
            return externSheet.getIndex(0, sheetpos);
        }
        int closeSquareBracketsIndex = sheetName.lastIndexOf(93);
        int openSquareBracketsIndex = sheetName.lastIndexOf(91);
        if(closeSquareBracketsIndex == -1 || openSquareBracketsIndex == -1)
            return -1;
        String worksheetName = sheetName.substring(closeSquareBracketsIndex + 1);
        String workbookName = sheetName.substring(openSquareBracketsIndex + 1, closeSquareBracketsIndex);
        String path = sheetName.substring(0, openSquareBracketsIndex);
        String fileName = path + workbookName;
        boolean supbookFound = false;
        jxl.write.biff.SupbookRecord externalSupbook = null;
        int supbookIndex = -1;
        for(int ind = 0; ind < supbooks.size() && !supbookFound; ind++)
        {
            externalSupbook = (jxl.write.biff.SupbookRecord)supbooks.get(ind);
            if(externalSupbook.getType() == SupbookRecord.EXTERNAL && externalSupbook.getFileName().equals(fileName))
            {
                supbookFound = true;
                supbookIndex = ind;
            }
        }

        if(!supbookFound)
        {
            externalSupbook = new jxl.write.biff.SupbookRecord(fileName, settings);
            supbookIndex = supbooks.size();
            supbooks.add(externalSupbook);
        }
        int sheetIndex = externalSupbook.getSheetIndex(worksheetName);
        return externSheet.getIndex(supbookIndex, sheetIndex);
    }

    public int getLastExternalSheetIndex(String sheetName)
    {
        if(externSheet == null)
        {
            externSheet = new ExternalSheetRecord();
            supbooks = new ArrayList();
            supbooks.add(new jxl.write.biff.SupbookRecord(getNumberOfSheets(), settings));
        }
        boolean found = false;
        Iterator i = sheets.iterator();
        int sheetpos = 0;
        WritableSheetImpl s = null;
        while(i.hasNext() && !found) 
        {
            s = (WritableSheetImpl)i.next();
            if(s.getName().equals(sheetName))
                found = true;
            else
                sheetpos++;
        }
        if(!found)
        {
            return -1;
        } else
        {
            jxl.write.biff.SupbookRecord supbook = (jxl.write.biff.SupbookRecord)supbooks.get(0);
            Assert.verify(supbook.getType() == SupbookRecord.INTERNAL && supbook.getNumberOfSheets() == getNumberOfSheets());
            return externSheet.getIndex(0, sheetpos);
        }
    }

    public void setColourRGB(Colour c, int r, int g, int b)
    {
        formatRecords.setColourRGB(c, r, g, b);
    }

    public RGB getColourRGB(Colour c)
    {
        return formatRecords.getColourRGB(c);
    }

    public String getName(int index)
    {
        Assert.verify(index >= 0 && index < names.size());
        jxl.write.biff.NameRecord n = (jxl.write.biff.NameRecord)names.get(index);
        return n.getName();
    }

    public int getNameIndex(String name)
    {
        jxl.write.biff.NameRecord nr = (jxl.write.biff.NameRecord)nameRecords.get(name);
        return nr == null ? -1 : nr.getIndex();
    }

    void addRCIRCell(CellValue cv)
    {
        rcirCells.add(cv);
    }

    void columnInserted(WritableSheetImpl s, int col)
    {
        int externalSheetIndex = getExternalSheetIndex(s.getName());
        CellValue cv;
        for(Iterator i = rcirCells.iterator(); i.hasNext(); cv.columnInserted(s, externalSheetIndex, col))
            cv = (CellValue)i.next();

    }

    void columnRemoved(WritableSheetImpl s, int col)
    {
        int externalSheetIndex = getExternalSheetIndex(s.getName());
        CellValue cv;
        for(Iterator i = rcirCells.iterator(); i.hasNext(); cv.columnRemoved(s, externalSheetIndex, col))
            cv = (CellValue)i.next();

    }

    void rowInserted(WritableSheetImpl s, int row)
    {
        int externalSheetIndex = getExternalSheetIndex(s.getName());
        CellValue cv;
        for(Iterator i = rcirCells.iterator(); i.hasNext(); cv.rowInserted(s, externalSheetIndex, row))
            cv = (CellValue)i.next();

    }

    void rowRemoved(WritableSheetImpl s, int row)
    {
        int externalSheetIndex = getExternalSheetIndex(s.getName());
        CellValue cv;
        for(Iterator i = rcirCells.iterator(); i.hasNext(); cv.rowRemoved(s, externalSheetIndex, row))
            cv = (CellValue)i.next();

    }

    public WritableCell findCellByName(String name)
    {
        jxl.write.biff.NameRecord nr = (jxl.write.biff.NameRecord)nameRecords.get(name);
        if(nr == null)
        {
            return null;
        } else
        {
            NameRecord.NameRange ranges[] = nr.getRanges();
            int sheetIndex = getExternalSheetIndex(ranges[0].getExternalSheet());
            WritableSheet s = getSheet(sheetIndex);
            WritableCell cell = s.getWritableCell(ranges[0].getFirstColumn(), ranges[0].getFirstRow());
            return cell;
        }
    }

    public Range[] findByName(String name)
    {
        jxl.write.biff.NameRecord nr = (jxl.write.biff.NameRecord)nameRecords.get(name);
        if(nr == null)
            return null;
        NameRecord.NameRange ranges[] = nr.getRanges();
        Range cellRanges[] = new Range[ranges.length];
        for(int i = 0; i < ranges.length; i++)
            cellRanges[i] = new RangeImpl(this, getExternalSheetIndex(ranges[i].getExternalSheet()), ranges[i].getFirstColumn(), ranges[i].getFirstRow(), getLastExternalSheetIndex(ranges[i].getExternalSheet()), ranges[i].getLastColumn(), ranges[i].getLastRow());

        return cellRanges;
    }

    void addDrawing(DrawingGroupObject d)
    {
        if(drawingGroup == null)
            drawingGroup = new DrawingGroup(Origin.WRITE);
        drawingGroup.add(d);
    }

    void removeDrawing(Drawing d)
    {
        Assert.verify(drawingGroup != null);
        drawingGroup.remove(d);
    }

    DrawingGroup getDrawingGroup()
    {
        return drawingGroup;
    }

    public String[] getRangeNames()
    {
        String n[] = new String[names.size()];
        for(int i = 0; i < names.size(); i++)
        {
            jxl.write.biff.NameRecord nr = (jxl.write.biff.NameRecord)names.get(i);
            n[i] = nr.getName();
        }

        return n;
    }

    public void removeRangeName(String name)
    {
        int pos = 0;
        boolean found = false;
        for(Iterator i = names.iterator(); i.hasNext() && !found;)
        {
            jxl.write.biff.NameRecord nr = (jxl.write.biff.NameRecord)i.next();
            if(nr.getName().equals(name))
                found = true;
            else
                pos++;
        }

        if(found)
            names.remove(pos);
    }

    Styles getStyles()
    {
        return styles;
    }

    public void addNameArea(String name, WritableSheet sheet, int firstCol, int firstRow, int lastCol, int lastRow)
    {
        if(names == null)
            names = new ArrayList();
        int externalSheetIndex = getExternalSheetIndex(sheet.getName());
        jxl.write.biff.NameRecord nr = new jxl.write.biff.NameRecord(name, names.size(), externalSheetIndex, firstRow, lastRow, firstCol, lastCol);
        names.add(nr);
        nameRecords.put(name, nr);
    }

    WorkbookSettings getSettings()
    {
        return settings;
    }

    public WritableCell getWritableCell(String loc)
    {
        WritableSheet s = getSheet(CellReferenceHelper.getSheet(loc));
        return s.getWritableCell(loc);
    }

    public WritableSheet importSheet(String name, int index, Sheet sheet)
    {
        WritableSheet ws = createSheet(name, index);
        ((WritableSheetImpl)ws).importSheet(sheet);
        return ws;
    }

    static Class class$(String x0)
    {
        return Class.forName(x0);
        ClassNotFoundException x1;
        x1;
        throw new NoClassDefFoundError(x1.getMessage());
    }

    static 
    {
        logger = Logger.getLogger(class$jxl$write$biff$WritableWorkbookImpl != null ? class$jxl$write$biff$WritableWorkbookImpl : (class$jxl$write$biff$WritableWorkbookImpl = class$("jxl.write.biff.WritableWorkbookImpl")));
    }
}

⌨️ 快捷键说明

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