当前位置:文档之家› POI2与POI3差异及解决excel2003和excel2007兼容性研究报告_V1.1资料

POI2与POI3差异及解决excel2003和excel2007兼容性研究报告_V1.1资料

POI2与POI3差异及解决excel2003和excel2007兼容性研究报告_V1.1资料
POI2与POI3差异及解决excel2003和excel2007兼容性研究报告_V1.1资料

POI2与POI3差异及解决excel2003和excel2007兼容性研究报告

1 现有问题:

近期发现报表系统(使用EXCEL作报表),在不知情的用户使用了EXCEL2007版本之后,出现了一系列兼容性问题:

1、用POI2.x操作EXCEL2007文件,会导致后台错误。

org.apache.poi7.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)

2、涉及EXCEL导出的部分,若文件内容是EXCEL2007,却使用.XLS,为后缀名的文件。那

么使用EXCEL2003打开会导致乱码现象。

3、目前新建报表模版,无论客户端安装的是什么版本的OFFICE,后台都是用EXCEL2003

(POI2)文件格式创建的。

4、目前兼容性问题影响范围包含但不限于:模板制作、报表导出、模板版本化、批量折

合等所有用到EXCEL后台操作的功能。

2 问题原因:

报表平台现有系统在后台处理Excel都是使用apache的POI2.x进行解析处理,但是poi2.x是和jdk1.4兼容的,且poi2.x只能处理excel2003及以前的老版本excel文件,客户机器上安装的往往是较新版的office2007,要处理excel2007就必须使用poi3.5以上的版本,poi3.5及以上的版本适用jdk1.5版及以上,并支持excel2007的处理。

3 POI2.x与POI3.x的区别:

3.1什么是POI

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。现在较新较稳定的POI版本是3.7,即常说的POI7,最新的POI3.8已经出了beta2版本,支持EXCEL2010的操作。

3.2如何使用POI

完整的POI3.8 beta2包含如下类库:

poi-3.8-beta2-20110408.jar

poi-examples-3.8-beta2-20110408.jar

poi-excelant-3.8-beta2-20110408.jar

poi-ooxml-3.8-beta2-20110408.jar (Office Open XML)

poi-ooxml-schemas-3.8-beta2-20110408.jar

poi-scratchpad-3.8-beta2-20110408.jar

另需要一些配套包的支持

dom4j-1.6.1.jar

stax-api-1.0.1.jar

xmlbeans-2.3.0.jar (必须使用2.3或以上的版本)

commons-logging-1.1.jar

junit-3.8.1.jar

log4j-1.2.13.jar

POI3.8的具体API及实现方法不在本文详述。

3.3POI结构及版本区别:

1、首先,相对于POI2.X及以下版本,POI3.X支持较高版本的Office操作,在本文中关

注的是能够对EXCEL2007进行操作,并可兼容操作EXCEL2003。

部分类图如下:

(图1)

如上图,POI2.x的结构只有类图中左半部分,POI3.x新增了以XSSF前缀的EXCEL 文件操作对象,用于对OOM格式的EXCEL操作。

POI3完整具体结构和作用如下:

结构:

HSSF -提供读写Microsoft Excel格式档案的功能。

XSSF -提供读写Microsoft Excel OOXML格式档案的功能。

HWPF -提供读写Microsoft Word格式档案的功能。

HSLF -提供读写Microsoft PowerPoint格式档案的功能。

HDGF -提供读写Microsoft Visio格式档案的功能。

2、其次,另一个重要区别就是,excel2007文件格式与之前版本不同,之前版本采用的

是微软自己的存储格式。07版内容的存储采用XML格式(OOM)。

4 现有问题解决方案:

4.1解决方案要求:

1、解决目前EXCEL2003和EXCEL2007兼容性问题。

2、提供后续EXCEL版本,如EXCEL2010的可扩展性。

4.2算法(实现逻辑)

1、兼容性:

如(图1)所示,我们可以看到,操作EXCEL2003的对象(HSSF为前缀)与操作EXCEL2007的对象(XSSF为前缀)共用一套接口,在遇到未知版本的EXCEL文件时,可以通过POI提供的方法判断文件头来获取版本信息,构造具体版本的Workbook实例。再返回统一的接口达到兼容性要求。

创建兼容性Workbook的工厂方法代码如下:

public static Workbook createCommonWorkbook(InputStream inp)

throws IOException, InvalidFormatException {

// 首先判断流是否支持mark和reset方法,最后两个if分支中的方法才能支持

if (!inp.markSupported()) {

// 还原流信息

inp = new PushbackInputStream(inp, 8);

}

// EXCEL2003使用的是微软的文件系统

if (POIFSFileSystem.hasPOIFSHeader(inp)) {

return new HSSFWorkbook(inp);

}

// EXCEL2007使用的是OOM文件格式

if (POIXMLDocument.hasOOXMLHeader(inp)) {

// 可以直接传流参数,但是推荐使用OPCPackage容器打开

return new XSSFWorkbook(OPCPackage.open(inp));

}

throw new IOException("不能解析的excel版本");

}

通过传入的文件流,获取到通用的Workbook接口,就可以进行一系列不同的业务操作了,实际上到这一步EXCEL2003与EXCEL2007的兼容性问题已经基本解决了,简单吧?具体实例请阅读本文最后的DEMO,此处不详述。

当然,HSSFWorkbook(EXCEL2003)会与XSSFWorkbook(EXCEL2007)有很多差异,通用接口只能满足这两者的交集部分。

如下图:

(图2)

若接口不能完全满足要求,可以通过判断Workbook类型,强制转换成其对应版本的对象,分别作两套或多套方法来处理。这是为满足兼容性值得牺牲,也是必须牺牲的部分。根据实际操作经验,接口能满足绝大部分EXCEL的基本操作,不能满足需要的情况非常少见。具体功能差异未作深究,感兴趣的读者可自行对比API。

伪码如下:

Workbook wb = createCommonWorkbook(不确定的版本的EXCEL文件流);

if (wb instanceof HSSFWorkbook) {

HSSFWorkbook hwb = (HSSFWorkbook)wb;

EXCEL2003的处理部分

} else if (wb instanceof XSSFWorkbook) {

XSSFWorkbook xwb = (XSSFWorkbook)wb;

EXCEL2007的处理部分

} else {

throw new IOException("不能解析的excel版本");

}

2、扩展性:

我们在兼容性部分已经创建了获取兼容Workbook的工厂方法,若遇到其它版本,如EXCEL2010的需求,在工厂方法里添加一个创建EXCEL2010的Workbook条件就行了。

修改createCommonWorkbook方法,伪码如下:

public static Workbook createCommonWorkbook(InputStream inp)

throws IOException, InvalidFormatException {

...

if (输入文件的文件头为EXCEL2010格式) {

return new EXCEL2010Workbook(inp);

}

...

}

throw new IOException("不能解析的excel版本");

}

既然版本都是固定的,那么再提供一个版本枚举类,不就可以更方便管理不同的EXCEL 版本了吗,如果将枚举的VALUE值定义为文件后缀名,也一并解决了不同版本的EXCEL文件后缀名不同的恼人问题,真是一举多得呢。后续即使有更高的Office版本,如EXCEL2010,也只需要添加一个工厂条件,再添加一个枚举项即可实现无缝升级了。

枚举类属性如下:

// KEY:版本号

// VALUE:文件后缀名

/**EXCEL2003版本*/

EXCEL_2003(2003, ".xls"),

/**EXCEL2007版本*/

EXCEL_2007(2007, ".xlsx");

/**后续添加扩展添加的EXCEL2010版本*/

EXCEL_2010(2010, ".xlsx");

再创建一个根据Workbook取得版本信息的工具方法,如下:

public static ExcelVersionTypeEnum checkExcelVersion(Workbook wb) throws IOException {

if (wb instanceof HSSFWorkbook) {

return ExcelVersionTypeEnum.EXCEL_2003;

} else if (wb instanceof XSSFWorkbook) {

return ExcelVersionTypeEnum.EXCEL_2007;

} else {

throw new IOException("不能解析的excel版本");

}

}

以后获取版本信息或后缀名就方便了:

ExcelVersionTypeEnum ev =CompatibleExcelUtil.checkExcelVersion(wb);

String suffix = ev.getValue();

3、DEMO:

源码如下:

public class Test {

public static void main(String[] args) {

String path2007 = "d:\\2007.xlsx";

String path2003 = "d:\\2003.xls";

Test.Demo(path2003);

}

public static void Demo(String filePath){

InputStream is = null;

try {

is = new BufferedInputStream(new FileInputStream((new

File(filePath))));

//调用工具类,获取兼容的Workbook接口(兼容性)

Workbook wb = CompatibleExcelUtil.createCommonWorkbook(is);

//获取首个单元格值(具体业务处理)

Sheet sheet = wb.getSheetAt(0);

sheet.getRow(0);

Row row = sheet.getRow(0);

Cell cell = row.getCell(0);

//调用工具类,返回版本枚举

ExcelVersionTypeEnum ev =CompatibleExcelUtil.checkExcelVersion(wb);

//控制台打印信息

System.out.println("EXCEL版本号:" + ev);

System.out.println("文件后缀名:" + ev.getValue() + "(即使此DEMO中文件

后缀名不规范,此处也能正确识别)");

System.out.println("首个单元格值:" + cell.getNumericCellValue());

} catch (Exception e) {

e.printStackTrace();

}finally{

try {

is.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

运行结果:

在D盘创建EXCEL2003格式文件《2003.xls》首个单元格值为2003。运行Test.Demo(path2003);

得到以下结果:

在D盘创建EXCEL2003格式文件《2007.xlsx》首个单元格值为111。运行Test.Demo(path2007);

得到以下结果:

把2007.xlsx改后缀名为2007.xls,运行Test.Demo("d:\\2007.xls");

得到以下结果:

强力破解EXCEL工作表保护密码

强力破解EXCEL工作表保护 在日常工作中,您是否遇到过这样的情况:您用Excel编制的报表、表格、程序等,在单元格中设置了公式、函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能,但时间久了保护密码容易忘记,这该怎么办?有时您从网上下载的Excel格式的小程序,您想修改,但是作者加了工作表保护密码,怎么办?您只要按照以下步骤操作,Excel工作表保护密码瞬间即破! 1、打开您需要破解保护密码的Excel文件; 2、依次点击菜单栏上的工具---宏----录制新宏,输入宏名字 如:aa; 3、停止录制(这样得到一个空宏); 4、依次点击菜单栏上的工具---宏----宏,选aa,点编辑按钮; 5、删除窗口中的所有字符(只有几个),替换为下面的内容; Option Explicit Public Sub AllInternalPasswords() ' Breaks worksheet and workbook structure passwords. Bob McCormick ' probably originator of base code algorithm modified for coverage ' of workbook structure / windows passwords and for multiple passwords ' ' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)

' Modified 2003-Apr-04 by JEM: All msgs to constants, and ' eliminate one Exit Sub (Version 1.1.1) ' Reveals hashed passwords NOT original passwords Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHORS As String = DBLSPACE & vbNewLine & _ "Adapted from Bob McCormick base code by" & _ "Norman Harker and JE McGimpsey" Const HEADER As String = "AllInternalPasswords User Message" Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure " & _ "to the microsoft.public.excel.programming newsgroup." Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _ "now be free of all password protection, so make sure you:" & _ DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _ DBLSPACE & "Also, remember that the password was " & _ "put there for a reason. Don't stuff up crucial formulas " & _ "or data." & DBLSPACE & "Access and use of some data " & _ "may be an offense. If in doubt, don't." Const MSGNOPWORDS1 As String = "There were no passwords on " &

excel2007的基础操作

Q:如何快速调用Excel2007中的选择性粘贴对话框? A:在复制单元格或对象后,按下Ctrl+Alt+V组合键,即可调用选择性粘贴对话框。 Q:Excel2007中使用公式输入自动提示功能时,会出现下图的情况,如何不用鼠标选取,快速完成公式输入? A:按TAB键。 Q:如何在数据有效性序列中引用其他工作表的单元格区域? A:选择需要设置数据有效性的单元格,单击“数据”选项卡→数据有效性→在弹出的对话框的“设置”选项卡中,设置“允许”项为“序列”,在来源编辑框中,直接输入需要引用的其他工作表及单元格区域地址,如“=Sheet1!$A$1:$A$10"。Excel 2007版本不能使用编辑框的选取按钮直接跨表选取的单元格区域,Excel 2010则可以。 Q:如何在Excel2007中设置冻结窗格? A:选择要冻结的窗格的位置入C2,表示冻结1行2列,按键ALT+W+F+F Q:在Excel2007中如何显示和隐藏编辑栏? A:方法一:“视图”→显示/隐藏”组→“编辑栏” 方法二:单击Office菜单栏→Excel选项→高级→“显示”分类→勾选或取消勾选“显示编辑栏”复选框 Q:如何让工作表单元格从右向左排列? A:按进入VBE编辑器,再按,调出立即窗口, 复制下列代码,按Enter执行即可。 1.ActiveSheet.DisplayRightToLeft = True 复制代码 这样可以满足从右到左阅读的要求。如果要改回来只要将True改成False,再次执行。 Q:Excel2007中照相机功能跑哪去了? A:Office按钮→E xcel选项→自定义→从下列命令中选择中,选取不在功能区的命令,然后找到照相机按钮,将其添加到右边,即可在应用程序左上部的自定义快速访问栏(QAT)找到“照相机”功能。 Q:在Excel2007中如何改变批注的形状? A:如果只是更改普通形状,选中形状,单击“格式”选项卡→“编辑形状”→“更改形状”按钮,在形状列表中,单击选择一个合适的形状,即可。 但选中批注时,“格式”选项卡并不会出现,必须从“office”按钮→“选项”→“自定义”→“所有命令”中,将其找到(拼音字母顺序),添加到QAT快速工具栏里,然后从QAT中调用。 Q:Excel2007中如何才能复制筛选结果? A:Excel2007中有时复制筛选结果,会得到所有未筛选前的数据。解决方法如下: 方法一选定筛选结果区域,Ctr+G定位“可见单元格”,然后再复制粘贴。 方法二单击“数据”选项卡→“排序和筛选”组中的“重新应用”按钮,然后再复制粘贴。

如何破解EXCEL工作表保护密码忘记密码怎么办

如何破解EXCEL工作表保护密码忘记密码怎么办 1.新建一个EXCEL工作表,而后点击另存为,讲表格保存为启用宏的工作表 * ■乐 碍乐雄迥 -* >计■尙 二0Q) .... ㈱ 亍总HI “ ■ I i ■ * \ Jfcft禺呵第證Mkrp^pft Qffiy fxeel JDQ7 工作褰x I gm [EHMI呦 怔■: Ad>51iAk±VAt4f t?nfl; 2. 一次点击开发工具---录制新宏,在弹出的对话框内修改宏名称而后确定 ft 真面布局公式敖掠审同视冒开裁工員 D F 254 3.依次点击开发工具停止录制宏,宏录制完成

| J fFik^j| 匮独 画Mffi植近三t 陥比疙上窸甜 空釦模式劑执行龙话框 代再 4.依次点击开发工具,---宏----在弹出的对话框找到我们刚才录制的宏名称而后进入 VBA界面 处8屯简开林工貝 能t ■BS| 斫厨丁亓的二作輝 说閉 5.在VBA界面,全选里面的代码,而后删除,讲里面的代码全部删除完

Mkroioft visual - Microsoft Office Excel 200?工荷txlsx 文件⑥锚也迺世)磁?惜式型谒试曲迳行逊Zft? 尹碗詠笛莆口呦 [

破解EXCEL工作表保护密码的简单方法

破解EXCEL工作表保护密码的简单方法 你是否给excel文件设置了保护工作表密码,现在要撤消工作表保护,但密码却忘了,自己把锁在了门外,真尴尬呀!怎么办?下面的方法将轻松解决: 本人亲测,完全可以成功,但是本方法只用于解决自己的文件忘记密码,请勿进行违法行为,一切后果本人不负责任 1.打开你的受保护的文件 2.工具---宏----录制新宏---输入名字如:aa 3.停止录制(这样得到一个空宏) 4.工具---宏----宏,选aa,点编辑按钮 5.删除窗口中的所有字符,替换为下面的内容:(复制吧) 6.关闭编辑窗口 7.工具---宏-----宏,选AllInternalPasswords,运行,确定两次,等2分钟,再确定.OK,没有密码了!! 内容如下: Public Sub AllInternalPasswords() ' Breaks worksheet and workbook structure passwords. Bob McCormick ' probably originator of base code algorithm modified for coverage ' of workbook structure / windows passwords and for multiple passwords ' ' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1) ' Modified 2003-Apr-04 by JEM: All msgs to constants, and ' eliminate one Exit Sub (Version 1.1.1) ' Reveals hashed passwords NOT original passwords Const DBLSPACE As String = vbNewLine&vbNewLine Const AUTHORS As String = DBLSPACE &vbNewLine& _ "Adapted from Bob McCormick base code by" & _ "Norman Harker and JE McGimpsey" Const HEADER As String = "AllInternalPasswords User Message" Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure " & _ "to the microsoft.public.excel.programming newsgroup." Const ALLCLEAR As String = DBLSPACE & "The workbook should "& _ "now be free of all password protection, so make sure you:" & _ DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _ DBLSPACE & "Also, remember that the password was "& _ "put there for a reason. Don't stuff up crucial formulas "& _ "or data." & DBLSPACE & "Access and use of some data "& _ "may be an offense. If in doubt, don't." Const MSGNOPWORDS1 As String = "There were no passwords on "& _ "sheets, or workbook structure or windows." & AUTHORS & VERSION

(考试课程)Excel2007实用技巧(一)工作表的基础操作

(考试课程)Excel2007实用技巧(一)工作表的基础操作 一、判断题 1. 在Excel 2007中,MAX函数是求最大值的函数。对 3. 在Excel 2007中,网格线是可以隐藏的。对 5. Excel工作表标签上文字的字号是由Windows系统设置决定的,但是更改的话,在Excel 里也是可以完成的。错 12. 在Excel 2007中,在单元格内输入“4/2”和输入“2”是一样的。错 19. 在进行数据有效性操作的时候,数据源的单元格数据删除或者修改后,下拉列表的选项不会跟随变化。错 4. Microsoft Office 2007版本比以往的版本新增了工具提示功能。对 12. Microsoft Office 2007版本的界面与2003版的是有些不同的。对 8. 安装兼容包并不能为旧版本的Excel提供Excel2007新增功能,只能提供打开和编辑文件的功能。错 9. 在进行查找操作之前一定要选择一个数据区域,否则Excel会查找当前工作簿的所有单元格,如果工作簿的内容比较多,就需要很长时间才能查找完毕。对 13. 利用Excel的“数据有效性”功能,创建下拉列表来选择需要输入的数据,可以提高数据输入速度和准确性。对 4. 在Excel 2007中,当在单元格中输入函数或公式时,必须在前面加上“=”号。对 二、单选题 7. (单选题)在Excel 2007中,“图表”组在()选项卡中。 C. 插入 9. (单选题)在Excel 2007中,()的数据才能进行加减乘除等运算。 B. 数值 13. (单选题)Excel中,在D列和E列之间插入一列,应选择()列再操作。 B. E列17. (单选题)在Microsoft Office 2007中,更改工作表的标签颜色很简单,在标签上单击右键,在弹出的菜单中选择()命令,然后从调色板中选择一种颜色方可。 B. 工作表标签颜色 1. (单选题)在Excel 2007中,要统计最高工资,应选择()的汇总方式。 D. MAX 5. (单选题)Excel工作表标签上文字的字号是由Windows系统设置决定的,要更改的话,()。 B. 设置Windows 1. (单选题)在Microsoft Office 2007中,利用()可以大大节省到功能区去寻找命令的时间。 B. 浮动工具栏 2. (单选题)Microsoft Office 2007版本的界面,把功能区界面改成()的形式。D. 选项卡5. (单选题)Excel 2007的扩展名是()。 B. .xlsx 10. (单选题)在Excel 2007中,()选线卡是不存在的。 B. 文件 13. 在Excel 2007中,“隐藏”功能只能对工作簿隐藏,不能隐藏表格的行或列。错 15. (单选题)Excel 2007中可以把数据表快速变成图片的功能叫做()。 B. 创建快照 16. (多选题)单元格的数据类型可以是()。全选 17. (单选题)在Excel 2007中,要为一数增加小数位数,应使用“开始”选项卡()组中的工具。 B. 数字 19. (多选题)在Excel 2007中,能帮助用户更好的掌握功能区使用的技巧包括()。全选

Excel2007基本操作技巧

可以在一个Excel单元格中、同时在多个Excel单元格中活和在多个工作表(工作表:在Excel 中用于存储和处理数据的主要文档。也称为电子表格。工作表由排列成行或列的单元格组成。工作表总是存储在工作簿中。)中输入数字(带有或不带有自动设置小数点)、文本、日期或时间。 要点工作表可能受到您或其他人的保护,以防止数据意外更改。在受保护的工作表中,您可能选择多个单元格来查看数据,但是您不能在锁定的单元格中键入信息。在大多数情况下,不应撤消对受保护的工作表的保护,除非该工作表的创建者对您授予了执行此操作的权限。要撤消工作表保护(如果适用),请单击“审阅”选项卡上“更改”组中的“撤消工作表保护”。如果应用工作表保护时设置了密码,您必须键入密码才能撤消工作表保护。 输入数字或文本 1、在工作表中,单击一个单元格。 2、键入所需的数字或文本,然后按Enter 或Tab。 提示若要在单元格中另起一行开始数据,请按Alt+Enter 输入一个换行符。 注释默认情况下,按Enter 会将所选内容向下移动一个单元格,Tab 会将所选内容向右移动一个单元格。您不能更改Tab 键移动的方向,但是可以为Enter 键指定不同的方向。 >>如何更改Enter 键的方向 A 单击“Microsoft Office 按钮”,然后单击“Excel 选项”。 B 在“高级”类别中的“编辑”下,选中“按Enter 键后移动所选内容”复选框,然后在“方向”框中单击所需的方向。 如果按Tab 在一行中的多个单元格中输入数据,然后在该行末尾按Enter,则所选内容将移动到下一行的开头。 当单元格包含的数据的数字格式比其列宽更宽时,单元格可能显示#####。要查看所有文本,必须增加列宽。 >>如何更改列宽 A 单击要更改列宽的单元格。 B 在“开始”选项卡上的“单元格”组中,单击“格式”。

Excel中如何破解“撤销工作表保护密码

Excel中如何破解“撤销工作表保护密码”并获取原始密码 1. 打开需要破解密码的Excel; 2. 按Alt+F11进入VBA编辑界面; 3. 插入-- 模块(Module); 4. 在右边Module的空白编辑区域,复制粘贴下面所有内容 5. F5,运行该VBA命令; Public Sub AllInternalPasswords() ' Breaks worksheet and workbook structure passwords. Bob McCormick ' probably originator of base code algorithm modified for coverage ' of workbook structure / windows passwords and for multiple passwords ' ' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1) ' Modified 2003-Apr-04 by JEM: All msgs to constants, and ' eliminate one Exit Sub (Version 1.1.1) ' Reveals hashed passwords NOT original passwords Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHORS As String = DBLSPACE & vbNewLine & _ "Adapted from Bob McCormick base code by" & _ "Norman Harker and JE McGimpsey" Const HEADER As String = "AllInternalPasswords User Message" Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure " & _ "to the microsoft.public.excel.programming newsgroup." Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _ "now be free of all password protection, so make sure you:" & _ DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _ DBLSPACE & "Also, remember that the password was " & _ "put there for a reason. Don't stuff up crucial formulas " & _ "or data." & DBLSPACE & "Access and use of some data " & _ "may be an offense. If in doubt, don't." Const MSGNOPWORDS1 As String = "There were no passwords on " & _ "sheets, or workbook structure or windows." & AUTHORS & VERSION Const MSGNOPWORDS2 As String = "There was no protection to " & _ "workbook structure or windows." & DBLSPACE & _ "Proceeding to unprotect sheets." & AUTHORS & VERSION Const MSGTAKETIME As String = "After pressing OK button this " & _ "will take some time." & DBLSPACE & "Amount of time " & _ "depends on how many different passwords, the " & _ "passwords, and your computer's specification." & DBLSPACE & _ "Just be patient! Make me a coffee!" & AUTHORS & VERSION Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _ "Structure or Windows Password set." & DBLSPACE & _ "The password found was: " & DBLSPACE & "$$" & DBLSPACE & _

破解excel工作保护表密码的方式

在Excel这一单元的教学中,我们经常使用Excel的工作表保护功能,将工作表用密码保护起来,以防学生操作时进行修改,但是这样一来有可能会无法进行一些操作(如输入公式等),时间久了保护的密码也有可能忘记了,这该怎么办呢?只要按照以下步骤操作,Excel工作表保护密码瞬间即破! 1、打开您需要破解保护密码的Excel文件。 2、执行“工具→宏→录制新宏”命令,输入宏的名字(如:aa)。 3、停止录制(这样得到一个空宏)。 4、执行“工具→宏→宏”命令,选aa,点击“编辑”按钮。 5、删除窗口中的所有字符,替换为下面的内容(蓝色部分): Option Explicit Public Sub AllInternalPasswords() ' Breaks worksheet and workbook structure passwords. Bob McCormick ' probably originator of base code algorithm modified for coverage ' of workbook structure / windows passwords and for multiple passwords ' ' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1) ' Modified 2003-Apr-04 by JEM: All msgs to constants, and ' eliminate one Exit Sub (Version 1.1.1) ' Reveals hashed passwords NOT original passwords Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHORS As String = DBLSPACE & vbNewLine & _ "Adapted from Bob McCormick base code by" & _ "Norman Harker and JE McGimpsey" Const HEADER As String = "AllInternalPasswords User Message" Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure " & _ "to the microsoft.public.excel.programming newsgroup." Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _ "now be free of all password protection, so make sure you:" & _ DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _ DBLSPACE & "Also, remember that the password was " & _ "put there for a reason. Don't stuff up crucial formulas " & _ "or data." & DBLSPACE & "Access and use of some data " & _ "may be an offense. If in doubt, don't." Const MSGNOPWORDS1 As String = "There were no passwords on " & _ "sheets, or workbook structure or windows." & AUTHORS & VERSION Const MSGNOPWORDS2 As String = "There was no protection to " & _ "workbook structure or windows." & DBLSPACE & _ "Proceeding to unprotect sheets." & AUTHORS & VERSION Const MSGTAKETIME As String = "After pressing OK button this " & _ "will take some time." & DBLSPACE & "Amount of time " & _ "depends on how many different passwords, the " & _ "passwords, and your computer's specification." & DBLSPACE & _ "Just be patient! Make me a coffee!" & AUTHORS & VERSION Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _ "Structure or Windows Password set." & DBLSPACE & _

Excel2007 的基本操作

【课时】1课时(45分钟) 【设计理念】为了突显“做中学,做中教”以及职业特色教育的新教学理念,同时也为了真正做到让学生学有所用,学以致用,因此,在教学中采用职业场景模拟的方式来组织教学,让学生提前感受到实际工作中Excel发挥的作用,配合上任务驱动,使整个教学过程围绕要完成的任务环环相扣,由浅入深。【设计亮点】将职业场景引入课堂教学,配合任务驱动与项目教学相结合的方式,合理地组织教学过程,让学生提前进入工作的角色,在任务的驱动下,真正实现“做中学,做中教”的先进教学理念。 【内容简析】 Excel 电子表格软件的使用已逐渐成为各单位办公中必须具备的一项基本技能。Excel2007 的全新改版增强了它的功能,而且操作界面新颖,给用户全新的体验。在这种全新感受的驱使下会让学生产生强烈的兴趣。本节课是本章的第一节课,还是重点要让学生掌握Excel的基本操作,为以后的熟练灵活的使用打下坚实的基础。【学情简析】针对职高学生的特点,理解力不强,但动手能力较强,故本堂课是以“学生为主”,主动学,主动练为原则,达到让学生真正手动、脑动这一目的。 在本章学习之前,学生已学习过Word2007的使用,对界面的操作已有一定的基础。【教学目标】 1.认知目标:认识Excel的操作界面;掌握Excel的基本操作方法。 2.能力目标:在任务的驱动下,会完成对工作表、行、列和单元格的基本操作。 3.情感目标:运用职业情景中角色的扮演,培养学生探索求新、团结协作的精神。 【重点难点】重点:Excel的基本操作 难点:能较为熟练地对Excel中的行、列及单元格完成基本操作 【重点、难点剖析】作为以掌握技能为主的计算机基础课程,了解 Excel2007 的操作界面,掌握 Excel 的常用基本操作是本节的重点,但考虑到这是本章的第一节课,一些常规操作会使学生产生厌烦情绪,可以在教师的教法和学生的学法上进行创新,同时合理处理教材,让学生在体验Excel2007功能的同时学会本节内容,保持对新知识的探索欲望。【教学方法及策略】 1.采用案例、职业情境、启发式教学法。 2.采取了由浅入深、循序渐进的教学策略,以例子讲解->综合练习->引发学生思考为流程。 3.运用“引课(职业场景创设)-任务驱动-探究拓展”的课堂教学模式。 【教学平台与资源】教学资源包、任务表、多媒体机房、投影仪、电子教育平台 【课前准备】课前反复播放“OFFICE 2007宣传片”,目的是让学生在这段动感的宣传片的吸引下进入即将上课的状态中,同时通过丰富的画面让学生体验OFFICE 2007强大的作用,渗透本节课要学的是关于OFFICE 2007的内容,以便顺利过渡到新课的开始。 【教学过程】Ⅰ、课程导入【职场情景】(约5’)设 计意图:创设符合课程内容的职业情境,引起学生的学

Excel2007实用技巧(一)工作表的基础操作参考答案95分

Excel2007实用技巧(一)工作表的基础操作参考答案95分 试题95分 1. (单选题)在Excel 2007中,在输入数据的时候,有些连续单元格要输入的数据是有规律的时候,可以采取(D)的快捷功能。 A. 逐个输入 B. 剪切粘贴 C. 复制粘贴 D. 自动填充 2. (单选题)( A是Excel最基本的存储单位。 A. 单元格 B. 幻灯片 C. 工作表 D. 工作簿 3. (单选题)当鼠标移到自动填充句柄中,鼠标指针变为(A)。 A. 黑十字 B. 黑矩形 C. 白十字 D. 双箭头 4. (单选题)Excel 2007中可以把数据表快速变成图片的功能叫做(C)。 A. 创建文件 B. 另存为 C. 创建快照 D. 快速截图 5. (单选题)Excel工作表标签上文字的字号是由Windows系统设置决定的,要更改的话,(C)。 A. 是不可以更改的 B. 在Excel中实现 C. 设置Windows 6. (单选题)在Excel 2007中,如果需要取消冻结窗口这效果的话,可以再次单击“冻结窗格”按钮,在弹出的菜单中选择(C)命令,这样就可以取消对首行的冻结。 A. 冻结窗格 B. 取消隐藏 C. 取消冻结窗口 D. 取消冻结窗格 7. (多选题)在Excel 2007中,使用填充柄可在单元格区域中填充(ACD)。 A. 递增或递减的是数据序列 B. 没有关系的数据 C. 已定义的序列数据 D. 相同数据 8.(单选题)在Excel 2007中,要为一数增加小数位数,应使用“开始”选项卡(B)组中的工具。 A. 对齐方式 B. 数字 C. 字体 D. 样式 9.(多选题)单元格的数据类型可以是(ABCD)。 A. 文本型 B. 日期型 C. 数值型 D. 货币型 10.安装兼容包并不能为旧版本的Excel提供Excel2007新增功能,只能提供打开和编辑文件的功能。(错) 11.(单选题)在Excel 2007中,在单元格内输入电话号码025-*******应如何输入(D)。 A. ^025-******* B. “025-*******

EXCEL密码去除(工作表、工作薄密码保护破解)

各位朋友不知道有没有碰到过这样的情况,当你要打开一个EXECL工作表时,突然发现密码忘记了,唯一可做的也许是搞个破解软件来破一下,但针对打开后的工作表保护,一般就很难有效了,复制虽是一种办法,但不少数据(特别是公式较多着),可能就要乱套了,入户才能破解这一类密码呢?不久前在网上发现此精华,与大家共享一下! 利用宏运行方式破解,真的很有效,运行中可能电脑有两分钟无反应,千万不要以为死机了,等等吧! 步骤方法如下: 1.打开文件 2.工具---宏---录制新宏---输入名字如:aa 3.停止录制(这样得到一个空宏) 4.工具---宏----宏,选aa,点编辑按钮 5.删除窗口中的所有字符(只有几个),替换为下面的内容:(复制吧) 6.关闭编辑窗口 7.工具---宏----宏。选AllInternalPasswords,运行,确定两次,等两分钟,再确定,OK, 没有密码了!! 宏内容如下: Public Sub AllInternalPasswords() 'Breaks worksheet and workbook structure passwords.Bob McCormick 'probably originator of base code algorithm modified for coverage 'of workbook structure / windows passwords and multiple passwords ' 'Norman Harker and JE McGimpsey 27-Dec-2002(Version 1.1) 'Modified 2003-Apr-04 by JEM:All msgs to constants,and 'eliminate one Exit Sub (Version 1.1) 'Reveals hashed passwords NOT original passwords Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHORS As String = DBLSPACE & vbNewLine & _ "Adapted form Bob McCormick base code by" & _ "Norman Harker and JE McGimpsey" Const HEADER As String = "AllInternalPasswords User Message" Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure" & _ "to the microsoft.public.excel.programming newsgroup." Const ALLCLEAR As String = DBLSPACE & "The workbook should" & _ "now be free of all password proteection, so make sure you:" & _ DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ DBLSPACE & "BACKUP!,BACKUP!!,BACKUP!!!" & _ DBLSPACE & "Also, remember that the password was" & _ "put there for areason. Don't stuff up crucial formulas" & _ "or date/" & DBLSPACE & "Access and use of some data" & _ "may be an offense.If in doubt,don't." Const MSGNOPWPRDS1 As String = "There were no passwords on" & _

excel2019保护工作表忘记密码怎么办

excel2019保护工作表忘记密码怎么办 篇一:Excel表格中忘了撤销工作表保护密码怎么办? Excel表格中忘了撤销工作表保护密码怎么办? 用宏代码破解密码: 以office2019为例说明,(2019也是一样的,只是菜单命令的位置不同) 第一步:打开该文件,先解除默认的“宏禁用”状态,方法是点击工具栏下的“选项”状态按钮,打开“Microsoft Office安全选项”窗口,选择其中的“启用此内容”,“确定”退出; 再切换到“视图”选项卡,点击“宏”→“录制宏”,出现“录制新宏”窗口,在“宏名”定义一个名称为:PassWordBreaker,点击“确定”退出; 第二步:再点击“宏”→“查看宏”,选择“宏名”下的“PasswordBreaker”并点击“编辑”,打开“Microsoft Visual Basic”编辑器,用如下内容替换右侧窗口中的所有代码: Sub PasswordBreaker() Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m As Integer, n As Integer Dim i1 As Integer, i2 As Integer, i3 As Integer Dim i4 As Integer, i5 As Integer, i6 As Integer On Error Resume Next

For i = 65 To 66: For j = 65 To 66: For k = 65 To 66 For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _ Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) If ActiveSheet.ProtectContents = False Then MsgBox "One usable password is " & Chr(i) & Chr(j) & _ Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _ Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) ActiveWorkbook.Sheets(1).Select Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _ Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _ Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) Exit Sub End If Next: Next: Next: Next: Next: Next Next: Next: Next: Next: Next: Next End Sub 第三步:再点击“宏”→“查看宏”,选择“宏名”下的“PasswordBreaker”并点击“执行”,密码就现形了。

相关主题
文本预览
相关文档 最新文档