📄 ezcell.java
字号:
}
/**
* 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 + -