相关文章推荐
气势凌人的小刀  ·  UIWindow与UIView - ...·  5 月前    · 
聪明伶俐的课本  ·  SQL ...·  1 年前    · 
奔跑的草稿纸  ·  How do you handle a ...·  1 年前    · 

IE嵌入excel文档

需要在IE中嵌入excel文档(xls), 可用于解决在IE中一次性显示大量表格数据(10万个单元格以上)造成的性能问题, 经测试可以有2种方式, 如有可能的话, 还可以借用第3方服务, 如Google Docs或Microsoft SkyDrive Microsoft Excel Web App
1. 通过iframe方式嵌入
主要是利用IE可以直接调用关联程序打开对应格式的文档, 如调用pdf阅读器在IE中直接打开pdf.
excel也是一样, 可以直接通过IE打开本地或远程的excel文件, 通过拖拽(或从IE菜单中选择文件-打开)excel文件到IE可以打开本地文件.
但一般通过网络会采用iframe的方式来嵌入文件, 让IE自动通过关联软件打开文件
<iframe width="100%" height="100%" src=" http://218.75.61.130/media_file/2005_10_29/20051029213808.xls " />

Internet Explorer 中编辑 OLE 嵌入文档
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8
修改 BrowserFlags 为 0
2. 通过ActiveX控件(OWC)方式嵌入
主要是利用微软的OWC组件(Microsoft Office Web Components)来打开excel
客户端必须安装该组件才能使用, 可以打开的格式为xml(SpreadsheetML), html(表格), csv
不支持直接打开xls, 因此必须转成符合他要求的上述格式

可以通过将excel文档另存为"XML 电子表格式 2003(*.xml)"的方式来获得这个xml文档
还支持csv和html格式(包含表格)对应属性为CSVURL, HTMLURL
spreadsheet.XMLURL = 'SpreadsheetML.xml';
setExcelDisplayMode(spreadsheet);
setProtectMode(spreadsheet);
选择单元格冻结表格
spreadsheet.Cells(2, 2).Select();
spreadsheet.ActiveWindow.FreezePanes = true;
function setExcelDisplayMode(spreadsheet) {
spreadsheet.DisplayToolbar = false;
spreadsheet.DisplayOfficeLogo = false;
spreadsheet.DisplayWorkbookTabs = false;
function setProtectMode(spreadsheet) {
protection = spreadsheet.ActiveSheet.Protection;
protection.AllowFormattingRows = true;
protection.AllowFormattingColumns = true;
protection.AllowDeletingRows = false;
protection.AllowInsertingRows = false;
protection.AllowInsertingColumns = false;
protection.AllowSorting = false;
protection.Enabled = true;
spreadsheet.ActiveWindow.EnableResize = false;
</script>
</head>
<input type="button" value="Read SpreadsheetML"
onclick="readSpreadsheetML()" Microsoft Office Web Components(OWC) -->
<object id="spreadsheet" style="width: 100%; height: 550px;"
classid="CLSID:0002E559-0000-0000-C000-000000000046"     </body>
</html>
SpreadsheetML.xml
----------------------------
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html=" http://www.w3.org/TR/REC-html40 "
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:x="urn:schemas-microsoft-com:office:excel">
<ss:Worksheet ss:Name="Sheet1">
<ss:Table>
<ss:Row>
<ss:Cell><Data ss:Type="String">Hello Excel!</Data></ss:Cell>
</ss:Row>
</ss:Table>
</ss:Worksheet>
</Workbook>