如何在html页面中显示excel表格

时间:2012-03-13 03:51:02

标签: html excel

我想用简单的HTML显示IE中嵌入的EXCEL表格。我在stackoverflow上经历过其他问题,但找不到任何有用的问题。

这是我的html文件

<html>
<body>
<object  width = 900 height = 500 id = "excel"  data="Issues Identified.xlsx" classid = "clsid:0002E55a-0000-0000-C000-000000000046" VIEWASTEXT  >
<param name="DisplayTitleBar" value=true />
<param name="DataType" value="CSVURL"/>
<param name="AutoFit" value="0"/>
<param name="DisplayColHeaders" value="1"/>
<param name="DisplayGridlines" value="1"/>
<param name="DisplayHorizontalScrollBar" value="1"/>
<param name="DisplayRowHeaders" value="1"/>
<param name="DisplayTitleBar" value="1"/>
<param name="DisplayToolbar" value="1"/>
<param name="DisplayVerticalScrollBar" value="1"/>
<param name="EnableAutoCalculate" value="0"/>
<param name="EnableEvents" value="0"/>
<param name="MoveAfterReturn" value="1"/>
<param name="MoveAfterReturnDirection" value="0"/>
<param name="RightToLeft" value="0"/>
</object>
</body>
</html>

不幸的是,我无法控制生成的excel文件。如果我可以控制excel文件,我可以将它们保存为网页并包含在浏览器中。现在我怀疑是否通过上述代码我可以直接在网络浏览器中嵌入excel表格。网上有很多链接,但发现没有找到一个直接将excel表加载到浏览器中的链接。那里的那些使用javascript生成图表而不是显示已经存在的excel表。

当我尝试通过上面的代码加载excel表时。我得到以下屏幕

enter image description here

当我使用IFRAME时,excel表格不会显示为嵌入文件,而是提示下载或打开。我希望它能够在Internet Explorer中打开。

任何帮助都非常感激。

由于

11 个答案:

答案 0 :(得分:4)

根据您是否希望它自动更新,您可以将Excel电子表格另存为PDF,然后将PDF作为对象嵌入 -

您似乎没有此浏览器的PDF插件,但您可以   click here to download the PDF file.

这是我找到的最佳上传方式。

答案 1 :(得分:3)

您可以将其上传到Google文档中,并按照此处详细说明嵌入Google电子表格:http://support.google.com/docs/bin/answer.py?hl=en&answer=55244

答案 2 :(得分:2)

将您的文件上传到Skydrive,然后右键单击并选择“嵌入”。他们将提供iframe片段,您可以将其粘贴到您的HTML中。这完美无缺。

来源:Office.com

答案 3 :(得分:1)

和您一样,我无法让MS Office Web Components工作。我不会考虑谷歌文档,因为谷歌似乎认为他们拥有通过他们手中的任何东西。我已经尝试了MS Publish Objects,但生成的html / css的质量确实非常糟糕。

将Excel工作表转换为可在智能手机上正确显示的html的秘诀在于创建干净,精简的html / css。

HTML的结构是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    HEAD
  </head>
  <body>
    BODY
  </body>
</html>

有一些有用的html元素可以取代“HEAD”,但我不清楚如何从Excel工作表中生成它们。它们需要单独添加。

工作表或范围的明显输出是一个html表,因此以下假定BODY将被html表替换。

html表的结构是:

<table TABLE-ATTRIBUTES>
  <tr TABLE-ROW-ATTRIBUTES>
    <td TABLE-CELL-ATTRIBUTES>CELL-VALUE</td>
    More <td>...</td> elements as necessary
  </tr>
  More <tr>...</tr> as necessary
</table>  

包括尽可能少的表 - 属性,表 - 行 - 属性和表 - 细胞 - 属性。不要以像素为单位设置列宽。使用css属性而不是html属性。

值得考虑的表属性是style = "border-collapse: collapse;"。默认值为separate,每个单元格周围都有间隙。使用collapse时,单元格会像Excel一样触摸。

值得考虑的三个表属性是style="background-color:aliceblue;"style="color:#0000FF;"style="text-align:right;"。使用第一个,您可以将背景颜色指定为50个左右的命名html颜色中的任何一个。使用秒,您可以将字体颜色指定为256 * 256 * 256颜色中的任何一种。使用第三个,您可以右对齐数值。

以上仅涵盖了可以从Excel转换为html / css的格式信息的一小部分。我正在开发一个可以尽可能多地转换Excel格式的加载项,但我希望上面的内容可以帮助任何有简单要求的人。

答案 4 :(得分:1)

您可以使用iPushPull将实时数据从Excel会话直接推送到网络,您可以在网络中将其显示在IFRAME中(或使用WordPress插件,如果适用)。只要工作表上的数据更新,框架中的数据就会更新。

iPush(...) in-cell function将数据从Excel推送到网络。

This support page介绍了如何在您的网站中嵌入Excel数据。

免责声明 - 我为iPushPull工作。

答案 5 :(得分:0)

如果您要创建链接<a href='file.htm'>link name</a>或放置iframe标记,它会在网络上显示Excel数据,但您无法对其进行更改。

每次在Excel工作表中进行更改时,都必须使用相同的名称再次保存,以便替换文件,并显示结果。 <a>标记文件扩展名应为.htm

答案 6 :(得分:0)

请注意,Office Web Components已失效,请参阅does-office-xp-web-components-compatable-with-windows-7。出于安全原因,OWC已从XP开始停止使用。

从那以后,直到最近,微软还推出了Excel Web App作为替代方案(一个糟糕的替代恕我直言)

作为旁注:Microsoft也反过来推荐,即将webbrowser控件嵌入到Excel工作表中,请参阅adding-web-browser-control-to-excel-2013。 作为替代方案,Microsoft提供Office Apps(关于连接Excel和IE的非常有限的替代方案)

答案 7 :(得分:0)

来自here您可以轻松地将您的Excel工作表数据转换为html视图

答案 8 :(得分:0)

Office 365和OneDrive提供嵌入功能。然后,您可以通过IFrame包含。

我发现将iframe高度和宽度设置为100%效果最佳。这样在ipad或任何设备上它都适合屏幕。

<body style="margin:0px;padding:0px;overflow:hidden">
    <iframe src="embed url" frameborder="0" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;height:100%;width:100%;position:absolute;top:0px;left:0px;right:0px;bottom:0px" height="100%" width="100%"></iframe>
</body>

答案 9 :(得分:0)

也许您可以尝试使用适当的Content-Type标头发送文件,并使用以下标题发送文件:

Content-Disposition: inline; filename="xxx.xxx"

以下是对这些标题的讨论:How to force files to open in browser instead of download (pdf)?

或者只是在谷歌搜索内容处理。

答案 10 :(得分:-3)

试试这个它会起作用......

<iframe src="Tmp.XLS" width="100%" height="500"></iframe>

但您无法保存已完成的更改...它仅用于显示目的..