js中点击按钮将html页面导出成图片

JavaScript027

js中点击按钮将html页面导出成图片,第1张

一、添加引用

在解决方案上单击右键,选择“Add Reference...”,添加“System.Windows.Forms”,添加完后,Web.Config 中应该有类似下面的内容:

<system.web>

<compilation debug="true">

<assemblies>

<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

二、 设置 STA 模式

在 @ Page 指令中加上 AspCompat="true",以强制该网页在 STA(单线程单元) 模式下执行。结果类似如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" AspCompat="true" %>

三、写截图代码

using System

using System.Collections

using System.Configuration

using System.Data

using System.Web

using System.Web.Security

using System.Web.UI

using System.Web.UI.HtmlControls

using System.Web.UI.WebControls

using System.Web.UI.WebControls.WebParts

using System.Drawing

using System.Drawing.Imaging

using System.Windows.Forms

public partial class _Default : System.Web.UI.Page

{

private WebBrowser _webBrowser

protected void Page_Load(object sender, EventArgs e)

{

string url = Request.QueryString["url"]

if (string.IsNullOrEmpty(url))

{

url = "http://www.cftea.com/"

}

_webBrowser = new WebBrowser()

_webBrowser.ScrollBarsEnabled = false//不显示滚动条

_webBrowser.Navigate(url)

_webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Completed)

while (_webBrowser.ReadyState != WebBrowserReadyState.Complete)

{

System.Windows.Forms.Application.DoEvents()//避免假死,若去掉则可能无法触发 DocumentCompleted 事件。

}

}

public void Completed(object sender, WebBrowserDocumentCompletedEventArgs e)

{

//设置浏览器宽度、高度为文档宽度、高度,以便截取整个网页。

_webBrowser.Width = _webBrowser.Document.Body.ScrollRectangle.Width

_webBrowser.Height = _webBrowser.Document.Body.ScrollRectangle.Height

using (Bitmap bmp = new Bitmap(_webBrowser.Width, _webBrowser.Height))

{

_webBrowser.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height))

bmp.Save("C:\\Capture.png", ImageFormat.Png)

}

}

}

简单的办法:使用js生成一个table,可以直接复制到excel中,网上有很多表格插件。

复杂的办法:js传递数据到服务器,服务器生成表格后返回一个下载链接。

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的BrendanEich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

MicrosoftExcel是微软公司的办公软件Microsoftoffice的组件之一,是由Microsoft为Windows和AppleMacintosh操作系统的电脑而编写和运行的一款试算表软件。Excel是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。

通过把页面上已有的表格dom节点传入(也可以动态js生成),直接返回一个workbook对象

把页面上已有的表格dom节点传入(也可以动态js生成),直接返回一个worksheet对象

给worksheet对象追加一个表格dom

通过json数据转成一个worksheet对象