粘贴板与导出Excel

网页代码

 1 <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
 2
 3        <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
 4             </asp:ScriptManagerProxy>
 5       <asp:UpdatePanel id="UpdatePanel1" runat="server">
 6          <Triggers >  //需要加这个来分析从服务器接受的消息,即对应网页报错:The message received from the serber could not be parsed
 7           <asp:PostBackTrigger ControlID ="ButtonExportExcell"/>
 8          </Triggers>
 9
10         <contenttemplate>
11              <asp:Button ID="ButtonCopyData" runat="server" BackColor="Silver"
12                 BorderStyle="Solid" BorderWidth="1px"
13                 style="z-index: 1; left: 573px; top: 162px; position: absolute; height: 24px; width: 97px; "
14                 onclientclick="copyData(‘ContentPlaceHolder1_BaseGridView‘);"  Text="复制到粘贴板" />
15
16              <asp:Button ID="ButtonExportExcell" runat="server" BackColor="Silver"
17                 BorderStyle="Solid" BorderWidth="1px"  OnClick="ButtonExportExcell_Click"
18                 style="z-index: 1; left: 678px; top: 162px; position: absolute; height: 24px; width: 97px; "
19                 Text="导出Excel" />
20
21          <asp:GridView ID="BaseGridView" runat="server" AllowPaging="False"
22                 BackColor="Gray" BorderColor="White"
23                 BorderStyle="Ridge" BorderWidth="2px" CaptionAlign="Left" CellPadding="3"
24                 CellSpacing="1" Font-Overline="False" Font-Size="Small" Font-Underline="False"
25                 GridLines="None" PageSize="3"
26                 style="Z-INDEX: -1; LEFT: 24px;   POSITION: absolute; TOP: 211px;   width: auto; height: 13px; "
27                 UseAccessibleHeader="False" AutoGenerateColumns="false">
28                 <PagerSettings Position="TopAndBottom" />
29                 <RowStyle BackColor="#DEDFDE" BorderColor="Black" Font-Size="Small"
30                     ForeColor="Black" HorizontalAlign="Left" VerticalAlign="Top" Wrap="True" />
31                 <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
32                 <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Left"
33                     Wrap="True" />
34                 <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
35                 <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" Font-Size="Small"
36                     ForeColor="#E7E7FF" HorizontalAlign="Left" VerticalAlign="Top" Wrap="False" />
37
38                 <Columns>
39                      <asp:TemplateField HeaderText="零件号">
40                             <ItemTemplate>
41                             <asp:Label ID="LabelPartDesc" runat="server" Width="120px" Text=‘<%# Bind("零件号") %>‘ ToolTip=‘<%# Bind("零件号") %>‘ ></asp:Label>
42                             </ItemTemplate>
43                     </asp:TemplateField>
44                     <asp:TemplateField HeaderText="条形码" >
45                             <ItemTemplate>
46                             <asp:Label ID="LabelBarCode" runat="server" Width="120px" Text=‘<%# Bind("条形码") %>‘ ToolTip=‘<%# Bind("条形码") %>‘ ></asp:Label>
47                             </ItemTemplate>
48                     </asp:TemplateField>
49
50                 </Columns>
51
52                 <EditRowStyle Wrap="True" />
53             </asp:GridView>
54
55
56          </contenttemplate>
57        </asp:UpdatePanel>
58
59     <script type="text/javascript" src="Scripts/My97DatePicker/WdatePicker.js">
60        </script>
61
62         <script type="text/javascript">
63
64              function copyData(TempID) {
65                  var objFrame = document.getElementById(TempID);
66                  var txt = document.body.createTextRange();
67                  if (objFrame != null) {
68                      txt.moveToElementText(objFrame);
69                      //////txt.select();
70                      txt.execCommand("copy", "", null); // 复制
71                  }
72              }
73
74          </script>
75
76  </asp:Content>
 1 //-----后台代码--------
 2  public void ExcelOut(GridView gv)
 3         {
 4             if (gv.Rows.Count > 0)
 5             {
 6                 Response.Clear();
 7                 Response.ClearContent();
 8                 Response.AddHeader("Content-Disposition", "attachment; filename=" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
 9                 Response.Charset = "gbk";
10                 Response.ContentEncoding = System.Text.Encoding.GetEncoding("gbk");
11                 Response.ContentType = "application/ms-excel";
12                 StringWriter sw = new StringWriter();
13                 HtmlTextWriter htw = new HtmlTextWriter(sw);
14                 gv.RenderControl(htw);
15                 Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=gbk\">");
16                 this.EnableViewState = false;
17                 System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
18                 HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
19                 gv.RenderControl(oHtmlTextWriter);
20                 Response.Write(oStringWriter.ToString());
21                 Response.End();
22             }
23             else
24             {
25                 Response.Write("没有数据");
26             }
27         }
28         public override void VerifyRenderingInServerForm(Control control)
29         {
30         //要导出数据,需要重载此方法。
31             //base.VerifyRenderingInServerForm(control);
32         }
33
34         protected void ButtonExportExcell_Click(object sender, EventArgs e)
35         {
36             ExcelOut(BaseGridView);
37         }

-----------------------------------------------------------

从GridView导出到Excel时报错:类型GridView的控件GridView1必须放置在具有runat=server的窗体标记内

但要注意的是在以前的vs.net2003时,就直接行了,在vs.net2005中还的加下一下语句,重载VerifyRenderingInServerForm方法:

public override void VerifyRenderingInServerForm(Control control)

{

  //空过程

}

MSDN上的 VerifyRenderingInServerForm 方法的描述:   必须位于 <form runat=server> 标记中的控件可以在呈现之前调用此方法,以便在控件被置于标记外时显示错误信息。发送回或依赖于注册的脚本块的控件应该在 Control.Render 方法的重写中调用此方法。呈现服务器窗体元素的方式不同的页可以重写此方法以在不同的条件下引发异常。   如果回发或使用客户端脚本的服务器控件没有包含在 HtmlForm 服务器控件 (<form runat="server">) 标记中,它们将无法正常工作。这些控件可以在呈现时调用该方法,以在它们没有包含在 HtmlForm 控件中时提供明确的错误信息。   开发自定义服务器控件时,通常在为任何类型的输入标记重写 Render 方法时调用该方法。这在输入控件调用 GetPostBackEventReference 或发出客户端脚本时尤其重要。复合服务器控件不需要作出此调用。

-----------------------------------------------------------

网页报错:The message received from the serber could not be parsed

无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪。 今天在Ajax的UpdatePanel下实现 Export Excel或是Word时,它即出现error:

行: 4723 错误: Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪。 详细信息: 分析附近的“<div>  <table cells”时出错。

确认Ajax下无数据导出时,会出现上面异常。网上查询,并花费多时,无得到满意的解决方案。

只有自己手动添加下面code,即可:

</ContentTemplate> < Triggers>             <asp:PostBackTrigger ControlID="btnExportWord" />             <asp:PostBackTrigger ControlID="btnExportExcel" />  </Triggers>  </asp:UpdatePanel>

时间: 2024-08-08 10:27:01

粘贴板与导出Excel的相关文章

.Net常用技巧_导出 Excel 和相关打印设置

Excel.Application myExcel = new Excel.Application();发 表Excel.Workbook workbookData = myExcel.Application.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);Excel.Worksheet xlSheet = (Worksheet)workbookData.Worksheets[1];//取得sheet1 1) 显示当前窗口: xlSheet.

导出excel失败,提醒提示加载类型库/DDL出错

导出excel失败,提醒提示加载类型库/DDL出错 www.MyException.Cn   发布于:2012-08-17 02:08:34   浏览:1538次 导出excel失败,提示提示加载类型库/DDL出错 ?我想做导出数据到excel,引用Excel的动态链接库Microsoft Excel 11.0 Object Library(2003版本的),并在程序里添加了using Excel; 在我自己的笔记本上编译通过并成功导出了Excel,但是到公司的机器上不行了,同样的操作却引用不上

js导入导出excel

导入: <html xmlns="http://www.w3.org/1999/xhtml" > <head>      <title>Untitled Page</title> </head> <script language="javascript" type="text/javascript"> function importXLS(fileName) {      

.net 后台导出excel ,word

前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="BTBW_rk.aspx.cs" Inherits="lxl_HXYRK_BTBW_rk" %> <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,

前端实现table表格导出excel

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .tb-head{ background-color: #ccc; } </style> <head> <script type="text/javascr

很简单的导入导出excel

1.导入excel数据到数据库 很多时候我们要导入excel文件的数据到数据库,可以网上搜各种数据导出的方法(NPOI,Office.Interop.Excel.dll等),但是那些都需要在程序中开发,下面介绍很简单的导入方法,直接用excel中的公式生成更新的sql.例如有如下的城市 excel数据需要插入到数据库 直接在第一条后面加公式 ="INSERT INTO T_Country (CountryName,CountryCode) VALUES('"&A2&&q

JS直接导出excel 兼容ie、chrome、firefox

<html> <head> <meta charset="utf-8"> <script type="text/javascript" language="javascript"> var idTmr; function getExplorer() { var explorer = window.navigator.userAgent ; //ie if (explorer.indexOf(&quo

NET导出Excel遇到的80070005错误的解决方法

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005基本上.net导出excel文件,都需要如此配置一下,不配置有的时候没错,而配置后基本应该不会出错. 具体配置方法如下: 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 3:依次双击"组件服

Asp.net导出Excel续章(自定义合并单元格,非Office组件)

结合上次写的导出Excel方法,这次上头要求我将列头进行一下合并 以前的效果: 改进后的效果: 在上篇文章中写到了Excel的导出方法,这次为了避免在生产环境中使用Office组件,服务器各种权限配置的麻烦,这次就不使用Office组件来生成Excel了. 上篇文章:Asp.net导出Excel(HTML输出) 关键代码如下图: 说道这里,其实主要思路已经很明显了. 在数据绑定结束后,重新绘制表头替换掉原来的表头就行了. TableCell自定义表头的时候是table标签的,很方便. 另外发现了