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

📄 ezcell.java

📁 用Java写的报表.功能如下: 0.内建网络打印,网络预览功能! 1.文件操作。包括url 指定的文件。 2.全功能打印支持。包括打印预览。 3.Undo 和 redo。 4.合并单元格。 5.Cel
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    }

    /**
     * DOCUMENT ME!
     *
     * @param resultset DOCUMENT ME!
     */
    public void importResultSet(ResultSet resultset) {
        ZSheet as = this.getActiveSheet();
        ZDefaultCell ac = (ZDefaultCell) this.getActiveCell();
        ZSheet sheet = ac.getSheet();

        int nowRow = ac.getRow();
        int startCol = ac.getCol();

        try {
            int columnCount = resultset.getMetaData().getColumnCount();

            while (resultset.next()) {
                for (int i = 0; i < columnCount; i++) {
                    ((ZDefaultCell) ((ZDefaultSheet) sheet).makeCell(nowRow, i + startCol)).setText(
                            resultset.getString(i + 1));
                }

                nowRow++;
            }

            repaint();
        } catch (SQLException ex) {
        }

    }

    /**
     * 打开一个工作薄文件(本地)
     * @param fileName
     * @exception Exception
     */
    public void open(String fileName) throws Exception {
        ZDefaultBook b = ZDefaultBook.open(fileName);
        setBook(b);
    }

    /**
     * 打开一个网络上的工作薄文件,
     * @param url 文件所在的url 路径
     *
     * @throws Exception 打开不成功
     */
    public void open(URL url) throws Exception {
        ZDefaultBook b = ZDefaultBook.open(url);
        setBook(b);
    }

    /**
     * 通知页面设置被改变了
     * @param e ChangeEvent对象
     */
    public void pageFormatChanged(ChangeEvent e) {
    }

    /**
     * 粘贴格式及文本
     * @param sheet 指定工作表
     * @param rect 目标单元格
     *
     * @throws Exception 目标单元格与合并单元格相交,则不支持
     */
    public void pasteIntoSelection(ZSheet sheet, ZRect rect)
                            throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.pasteIntoSelection(rect);
    }

    /**
     * 粘贴文本
     * @param sheet 指定目标工作表
     * @param rect 目标单元格
     * @exception Exception 目标单元格与合并单元格相交,则不支持
     */
    public void pasteTextIntoSelection(ZSheet sheet, ZRect rect)
                                throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.pasteTextIntoSelection(rect);
    }

    /**
     * 打印
     * @param showSetupDlg 是否显示打印设置对话框,设置/不设置(true/false)
     */
    public void print(boolean showSetupDlg) {
        ZDocument doc = new ZDocument(bookState.getBook());

        try {
            ZPrinter.getPrinter().print(doc, showSetupDlg);
        } catch (Exception ex) {
        }
    }

    /**
     * 打印预览
     * @exception Exception 如果当前工作薄为空,则不支持
     */
    public void printPreview() throws Exception {
        ZDocument doc = new ZDocument(bookState.getBook());
        ZPrinter.getPrinter().printPreview(doc);
    }

    /**
     * 打印设置
     */
    public void printSetup() {
        ZDocument doc = new ZDocument(bookState.getBook());
        PageFormat pf = ZPrinter.getPrinter().printSetup(doc);

        if (bookState.getBook().getPageFormat() != pf) {
            bookState.getBook().setPageFormat(pf);
        }
    }

    /**
     * 重做一个命令
     */
    public void redo() {
        try {
            ZCmdFormat.undoManager.redo();
        } catch (Exception e) {
            System.err.println("Can't Redo More");
        }
    }

    /**
     * 通知出现了一个REDO动作
     * @param mgr 发通知的UNDO 管理器
     */
    public void redoHappen(ZUndoManager mgr) {
        ZCommand cmd = mgr.getCurrentCommand();
        ZRect selection = (ZRect) cmd.get("activeSelection");
        ZCellID cid = (ZCellID) cmd.get("activeCell");

        if (bookState.getActive() != cmd.get("activeSheet")) {
            bookState.setActive((ZSheetState) cmd.get("activeSheet"));
        }

        bookState.getActive().setSelection(selection);
        bookState.getActive().setFocus(cid);
        fireUndoStateChanged();
    }

    /**
     * 删除一个侦听器
     * @param lst 要删的侦听器
     */
    public void removeListener(EZCellListener lst) {
        listeners.remove(lst);
    }

    /**
     * 删除指定列
     * @param sheet 指定工作表
     * @exception Exception 如果被选单元格与合并单元格相交,或不是列选则不支持
     */
    public void removeSelectionCol(ZSheet sheet) throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        ZRect rect = bookState.getActive().getSelection();
        sheet.removeColsSelection(rect);
    }

    /**
     * 删除指定行
     * @param sheet 指定工作表
     * @exception Exception 如果被选单元格与合并单元格相交,或不是行选则不支持
     */
    public void removeSelectionRow(ZSheet sheet) throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        ZRect rect = bookState.getActive().getSelection();
        sheet.removeRowsSelection(rect);
    }

    /**
     * 删除指定工作表
     * @param sheet 要删的工作表
     */
    public void removeSheet(ZDefaultSheet sheet) {
        bookState.getBook().remove(sheet);
    }

    /**
     * 删除指定位置上工作表,如果是最后一个工作表,则不支持
     * @param index 要删的工作表索引
     */
    public void removeSheet(int index) throws Exception {
        if (bookState.getBook().getCount() == 1) {
            throw new Exception(
                    "The last sheet not allowed to be deleted! if you sure to do ,please use File/New .");
        }

        if (index == -1) {
            bookState.getBook().remove(bookState.getActive().getSheet());
        } else {
            bookState.getBook().remove(index);
        }
    }

    /**
     * 查找替换
     * @param owner 查找替换对话框的父框架
     */
    public void replace(JFrame owner) {
        ZFindReplace.getSharedInstance(owner).showReplace(bookState.getActive());
    }

    /**
     * 保存
     * @exception Exception 磁盘操作出错
     */
    public void save() throws Exception {
        bookState.getBook().save();
    }

    /**
     * 另存为
     * @param fileName 文件名
     * @exception Exception 磁盘操作出错
     */
    public void saveAs(String fileName) throws Exception {
        bookState.getBook().saveAs(fileName);
    }

    /**
     * 焦点单元格移动提定位置
     * @param owner 包含行列信息输入对框的父框架
     */
    public void searchGoto(JFrame owner) {
        ZSearchGotoDialog.getSharedInstance(owner).show(bookState.getActive());
    }

    /**
     * 通知有一个工作表被插入了
     * @param e Change事件对象
     * @param sheet 新表
     */
    public void sheetAdded(ChangeEvent e, ZSheetState sheet) {
    }

    /**
     * 通知有一个工作表被删除了
     * @param e Change事件对象
     * @param sheet 被删除的工作表
     */
    public void sheetRemoved(ChangeEvent e, ZSheetState sheet) {
        ZCmdFormat.undoManager.remove(sheet.getSheet());
    }

    /**
     * 开始编辑页脚页眉
     */
    public void startEditPage() {
        if (isPageViewing()) {
            return;
        }

        if (printPreview == null) {
            ZDocument doc = new ZDocument(bookState.getBook());
            printPreview = new ZPrintPreview(doc, ZDocument.PAGE_HEADER);
            this.add("printPreview", printPreview);
            printPreview.addListener(this);
        }

        layout.show(this, "printPreview");
    }

    /**
     * 通知当前工作表发生了变化
     * @param e Change事件对象。
     */
    public void stateChanged(ChangeEvent e) {
        if (e.getSource() instanceof ZBookView) {
            ZBookView bv = (ZBookView) e.getSource();
            bookState.setActive(bv.getActiveSheetState());
        } else if (e.getSource() instanceof ZPrintPreview) {
            ZPrintPreview pv = (ZPrintPreview) e.getSource();
            bookState.setActive(pv.getModal());
        }

        fireViewStateChanged();
    }

    /**
     * undo,撤销一次编辑
     */
    public void undo() {
        try {
            ZCmdFormat.undoManager.undo();
        } catch (Exception e) {
            System.err.println("Can't Undo More");
        }
    }

    /**
     * 通知undo,redo列表发生变化
     * @param mgr 发来通知的 UNDO 管理器
     */
    public void undoHappen(ZUndoManager mgr) {
        redoHappen(mgr);
    }

    /**
     * 设定视图缩放比例
     * @param scale 新比例
     */
    public void zoom(float scale) {
        if (scale == getScale()) {
            return;
        }

        bookState.getActive().setScale(scale);
        fireViewStateChanged();
    }

    /**
     * put your documentation comment here
     */
    private void fireActiveCellChanged() {
        if (bookState.getActive() != null) {
            for (int i = 0; i < listeners.size(); i++)
                ((EZCellListener) listeners.get(i)).activeCellChanged(this);
        }
    }

    /**
     * put your documentation comment here
     */
    private void fireUndoStateChanged() {
        if (bookState.getActive() != null) {
            for (int i = 0; i < listeners.size(); i++)
                ((EZCellListener) listeners.get(i)).undoStateChanged(this);
        }
    }

    /**
     * put your documentation comment here
     */
    private void fireViewStateChanged() {
        if (bookState.getActive() != null) {
            for (int i = 0; i < listeners.size(); i++)
                ((EZCellListener) listeners.get(i)).viewStateChanged(this);
        }
    }

    /**
     * put your documentation comment here
     */
    private void jbInit() {
        ZDefaultBook book = new ZDefaultBook();
        updateUI(ZUIManager.getDefault());


        // add book viewer;
        bookState = new ZBookState(book);
        bookState.addListener(this);
        bookView = new ZBookView(bookState);
        bookView.addChangeListener(this);
        add(bookView, BorderLayout.CENTER);
        this.setLayout(layout);
        this.add("bookView", bookView);
        bookView.setVisible(false);
        bookView.setVisible(true);
        this.addFocusListener(new FocusAdapter() {
            /**
             * put your documentation comment here
             * @param e
             */
            public void focusGained(FocusEvent e) {
                for (int i = 0; i < getComponentCount(); i++) {
                    Component comp = getComponent(i);

                    if (comp.isVisible()) {
                        comp.requestFocus();

                        break;
                    }
                }
            }
        });
        ZCmdFormat.undoManager.addListener(this);
    }

    /**
     * 更改界面选项put your documentation comment here
     * @param ui
     */
    private void updateUI(ZDefaultUI ui) {
    }
}

⌨️ 快捷键说明

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