如何在浏览器中下载和显示Excel电子表格

时间:2010-02-14 10:48:19

标签: c# asp.net

需要导航到Excel电子表格并在浏览器中显示。 我怎么能这样做?

5 个答案:

答案 0 :(得分:3)

我认为您不想在DataTable中转换Excel,如果正确的话,为什么不使用谷歌文档来显示您的文档,这里有一些链接

http://docs.google.com/viewer

http://code.google.com/apis/documents/overview.html

http://code.google.com/apis/spreadsheets/

由于

答案 1 :(得分:1)

2个动词'导航到'和'显示'在这里不起作用。即使用户想要并同意操作系统弹出的任何对话框,我向您保证浏览器不是excel的注册应用程序。

要让浏览器显示.xls内联,您必须将其呈现给响应,并将内容处置标题设置为内嵌

其他人刚刚发布了link to an article可以帮助您入门,只需将内容处置更改为“内联”。

答案 2 :(得分:-1)

您可以查看以下链接, Howto: Export a dataset to Excel (c# / asp.net)

答案 3 :(得分:-1)

如果您有一个指向页面上Excel表格的链接,并且用户点击它,它将在Excel,Open Office,Excel查看器或任何与文件类型相关联的用户中打开。但它不会在浏览器内打开。据我所知,没有这样的插件可用,但即使有,也取决于用户在计算机中安装的内容。

如果要在浏览器中打开工作表,必须将其转换为HTML。 Open Office有一个选项可以将工作表保存为HTML,我认为Excel也有这个选项。

答案 4 :(得分:-1)

这是一种简单的方法..

    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Linq" %>
    <script runat="server" language="C#">    
      public void Page_Load()
      {
        var data = new[] {
          new { NavigateUrl = "http://getfirefox.com" },
          new { NavigateUrl = "http://myweb/myfiles/excel1.xls" }
        };

        var augmentedData =
          from datum in data
          select new
          {
            NavigateUrl = datum.NavigateUrl,
            OnClientClick = "return ViewDoc_onClick('" + datum.NavigateUrl + "');"
          };

        list.DataSource = augmentedData;
        list.DataBind();
      }
    </script>
    <!doctype html>
<!doctype html>
<html>
<head>
  <title>Client Click Test</title>
  <script type="text/javascript">
    var newWindow;
    function ViewDoc_onClick(url) {
      if (newWindow) {
        newWindow.location.href = url;
      }
      else {
        newWindow = window.open(url, 'ViewDoc', 'width=800, height=600');
      }
      newWindow.focus();
      return false;
    }
  </script>
</head>
<body>
  <form runat="server">
  <asp:Repeater ID="list" runat="server">
    <ItemTemplate>
      <asp:Button runat="server" OnClientClick='<%# Eval("OnClientClick") %>' Text='<%# Eval("NavigateUrl") %>' />
    </ItemTemplate>
  </asp:Repeater>
  </form>
</body>
</html>