我怎样才能发送一个表的内容或一个SQL查询的结果从asp页面的剪贴板?

在互联网上有很多这样的事情的例子。 但是他们都没有在Firefox中工作。 所以我认为我会为Stack Overflow用户设置挑战。

基本上,我需要一个非常简单的方法来为页面的用户提供查询的结果到剪贴板,以便他们可以将其粘贴到Excel中。

它可以从HTML表中获取数据(由查询生成)

或直接将结果发送到剪贴板(以excel可读的格式)

我有一个有很多asp页面的内联网。 其中一些生成相当大的表,其中一些然后复制到Excel中。 目前用户必须点击左上angular的单元格,然后向下滚动页面并将光标从表格的末尾移开。 如果他们没有做到这一点(在Firefox中),Excel的数据将不会被正确读取。

我希望他们能够点击一个button,然后他们去excel,点击单元格a1和ctrl-v。 数据应该正确显示为列和行(格式不重要)

有任何想法吗?

我打开ASP或Javascript方法。 它必须在IE和Firefox中都可以使用(3)

编辑

我从答复中select了最简单的选项(我可能有很多页面要“做”,所以最简单的就是最好的。

在forms…

Send results to excel <input type="checkbox" name="sendtoexcel"> 

在后面的代码中…

 if request.querystring("sendtoexcel") = "on" then response.contenttype = "application/vnd.ms-excel" Response.AddHeader "content-disposition","attachment; filename=fname.xls" end if 

首先,Excel对html表格对象的复制/粘贴有很好的支持。 你应该看看,如果这符合你的需求。

否则,我build议直接从ASP向用户发送数据的CSV文件。

我没有testing过这个,但它应该让你在那里的一部分:

 <% Response.AddHeader "Content-Type", "application/octet-stream" Response.AddHeader "Content-Disposition", "attachment; filename=myTable.csv" Dim customers, c customers = GetCustomerFromDb() For Each c in customers Response.Write """" & c("Name") & """," Response.Write """" & c("Email") & """," Response.Write """" & c("Address") & """," Response.Write """" & c("City") & """," Response.Write vbCrLf Next %> 

你要做的就是用这段代码创build一个新页面,然后在你的界面中你将有一个链接到这个页面,下载CSV。

我将在Intranet设置中使用的方法是有一个ASP页面,将该表格作为HTML发送,但将响应内容types设置为“application / vnd.ms-excel”。

可能你会有三个页面:

  1. 包含页面,其中包含用于生成HTML表格的代码
  2. 一个使用include创build表格输出的视图页面,其他标记如导航和“发送到excel链接”(链接到下面的页面)
  3. 将其内容types设置为“application / vnd.ms-excel”并使用相同的页面包括生成表格输出。

现在,用户只需点击链接,表格内容就会出现在Excel中。

注意最佳操作,您将需要添加Content-Dispostion标题“文件名= sensible.xls;附件”。