数据导出


数据导出和数据导入刚好是相反的,把逻辑反过来就可以了。

源码:https://github.com/SeaLee02/FunctionModule/blob/master/UploadFiles/WebDemo/COM/DataToOut.aspx

效果:

 

然后勾选需要导出的数据,生成Excel

 

 部分前台:

 <div style="margin-left: 100px;"><asp:LinkButton CssClass="add" ID="lnkData" runat="server" OnClientClick="return Test()" OnClick="lnkData_Click">导出<br />数据</asp:LinkButton><asp:HiddenField ID="hfID" runat="server" />  //赋值选择了需要导出数据的ID</div>

 

 JS:

   //全选/不全选$("#checkAll").click(function () {var f = $("#checkAll").is(":checked")if (f) {$("input[name=chk]:checkbox").prop("checked", true);} else {$("input[name=chk]:checkbox").prop("checked", false);}});//单选var d = $("input[name=chk]:checkbox").length;$("input[name=chk]:checkbox").click(function () {var dd = $("input[name=chk]:checked").length;if (parseInt(d) === parseInt(dd)) {$("#checkAll").prop("checked", true);} else {$("#checkAll").prop("checked", false);}});//取值
            function Test() {             var ids = "";            var dd = $("input[name=chk]:checked");               dd.each(function () {ids += $(this).val() + ",";                       });if (ids=="") {alert("请选择导入的数据");return false;}ids = ids.substring(0, ids.length - 1);$("#hfID").val(ids);return true;};

 

 后台导出数据的代码:

 Aspose.Cells 需要从外面引入的

 

  protected void lnkData_Click(object sender, EventArgs e){DataTable ds = new FunctionDemo.BLL.DataToLead().GetList(" ID in (" + hfID.Value + ")").Tables[0];if (ds.Rows.Count > 0){//创建一个excel表格Workbook workbook = new Workbook();Worksheet sheet = workbook.Worksheets[0] as Worksheet; //工作薄Cells cells = sheet.Cells;//取到所有的列//然后往cell里面插入数据  sheet.FreezePanes(1, 1, 1, 0);//冻结第一行
//插入头部cells[0, 0].PutValue("姓名");cells[0, 1].PutValue("性别");cells[0, 2].PutValue("年龄");cells[0, 3].PutValue("电话号码");cells[0, 4].PutValue("标记");Aspose.Cells.Style style1 = workbook.Styles[workbook.Styles.Add()]; //设置样式 然后进行设置style1.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;//居中//列宽cells.SetColumnWidth(0, 20);cells.SetColumnWidth(1, 20);cells.SetColumnWidth(2, 20);cells.SetColumnWidth(3, 50);cells.SetColumnWidth(4, 20);for (int i = 0; i < ds.Rows.Count; i++){cells.SetRowHeight(i, 20); //行高//赋值和样式cells[1 + i,0].PutValue(ds.Rows[i]["Name"].ToString());cells[1 + i,0].SetStyle(style1);
cells[
1 + i,1].PutValue(ds.Rows[i]["Sex"].ToString());cells[1 + i,1].SetStyle(style1);
cells[
1 + i,2].PutValue(ds.Rows[i]["Age"].ToString());cells[1 + i,2].SetStyle(style1);
cells[
1 + i,3].PutValue(ds.Rows[i]["Tel"].ToString());cells[1 + i,3].SetStyle(style1);
cells[
1 + i,4].PutValue(ds.Rows[i]["Remark"].ToString());cells[1 + i,4].SetStyle(style1);}Aspose.Cells.Style style = workbook.Styles[workbook.Styles.Add()]; //设置样式style.HorizontalAlignment = TextAlignmentType.Center;//居中style.ForegroundColor = System.Drawing.Color.Khaki;//背景样式style.Pattern = BackgroundType.Solid; //枚举类型 模式 实线

cells[0,0].SetStyle(style); //第一行设计样式 头cells[0, 1].SetStyle(style); cells[0, 2].SetStyle(style); cells[0, 3].SetStyle(style); cells[0, 4].SetStyle(style);
System.IO.MemoryStream ms
= workbook.SaveToStream();//生成流byte[] by = ms.ToArray();//生成字节好下载string fileName = "导出数据" + DateTime.Now.ToString("yyyyMMddHHmmss")+".xls";//文件名Response.ContentType = "application/octet-stream";//文件下载//以字节流形式下载excel 上面下面两种类型都可以//Response.ContentType = "application/vnd.ms-excel";//编码 Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8));Response.BinaryWrite(by);Response.Flush();Response.End();}}

 

合并单元格     使用   cells.Merge()方法就可以完成

 

   

 

 

 

 

转载于:https://www.cnblogs.com/Sea1ee/p/7089416.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring 事务隔离级别和传播行为_Spring事务传播性与隔离性实战

一、事务传播性1.1 什么是事务的传播性事务的传播性一般在事务嵌套时候使用&#xff0c;比如在事务A里面调用了另外一个使用事务的方法&#xff0c;那么这俩个事务是各自作为独立的事务执行提交&#xff0c;还是内层的事务合并到外层的事务一块提交那&#xff0c;这就是事务传播…

前端为什么非要动静分离 说一下CDN托管的意义

大型Web应用对速度的追求并没有止步于仅仅利用浏览器缓存&#xff0c;因为浏览器缓存始终只是为了提升二次访问的速度&#xff0c;对于首次访问的加速&#xff0c;我们需要从网络层面进行优化&#xff0c;最常见的手段就是CDN&#xff08;Content Delivery Network&#xff0c;…

CSS position(定位)属性

关于CSS position&#xff0c;来自MDN的描述&#xff1a; CSS position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left 属性则决定了该元素的最终位置。 然后来看看什么是文档流(normal flow)&#xff0c;下面是 www.w3.org 的描述&#xff1a; Normal flo…

Java ByteBuffer –速成课程

以我的经验&#xff0c;当开发人员第一次遇到java.nio.ByteBuffer时&#xff0c;会引起混乱和细微的错误&#xff0c;因为如何正确使用它尚不明显。 在我对API文档感到满意之前&#xff0c;需要反复阅读API文档和一些经验以实现一些微妙之处。 这篇文章是关于如何正确使用它们的…

实现编辑功能有哪几个action_Web 应用的撤销重做实现

背景前不久&#xff0c;我参与开发了团队中的一个 web 应用&#xff0c;其中的一个页面操作如下图所示&#xff1a;GIF这个制作间页面有着类似 PPT 的交互&#xff1a;从左侧的工具栏中选择元素放入中间的画布、在画布中可以删除、操作&#xff08;拖动、缩放、旋转等&#xff…

windows下如何安装pip以及如何查看pip是否已经安装成功?

最近刚学习python&#xff0c;发现很多关于安装以及查看pip是否安装成的例子都比较老&#xff0c;不太适合于现在&#xff08;python 3.6 &#xff09;因此&#xff0c;下一个入门级别的教程。 0&#xff1a;首先如何安装python我就不做介绍了。 1&#xff1a;如果安装的是pyth…

检查用户显示器的分辨率

检查用户显示器的分辨率 转载于:https://www.cnblogs.com/Renyi-Fan/p/8088012.html

android 字体 dpi,详解Android开发中常用的 DPI / DP / SP

Android的碎片化已经被喷了好多年&#xff0c;随着国内手机厂商的崛起&#xff0c;碎片化也越来越严重&#xff0c;根据OpenSignal的最新调查&#xff0c;2014年市面上有18796种不同的Android设备&#xff0c;作为开发者&#xff0c;一个无法回避的难题就是需要适配各种各样奇奇…

android studio闪退代码不报错_代码不报错,不代表真的没错

今天是生信星球陪你的第695天大神一句话&#xff0c;菜鸟跑半年。我不是大神&#xff0c;但我可以缩短你走弯路的半年~就像歌儿唱的那样&#xff0c;如果你不知道该往哪儿走&#xff0c;就留在这学点生信好不好~这里有豆豆和花花的学习历程&#xff0c;从新手到进阶&#xff0c…

Centos7操作系统部署指南

一、硬件环境&#xff1a; Dell R620 二、软件环境&#xff1a; Centos6.4 X86_64 KVM Windows7vnc 三、安装说明 操作系统更新之迅速&#xff0c;让作为新手的系统运维人员有点措手不及&#xff0c;相对于老手就胸有成竹。怎么讲&#xff1f;由于老手对技术方向把握的非常好&…

Eclipse插件中的SLF4J登录

一直都在使用Maven和纯Java库进行开发&#xff0c;我从没想过在开发Eclipse插件时发出一些日志语句可能会成为问题。 但是&#xff0c;在Eclipse开发人员的想象中&#xff0c;一切似乎总是在Eclipse环境中&#xff0c;而Eclipse宇宙之外则什么都没有。 如果您使用Google搜索上…

Java EE 7社区调查结果!

在JSR 342下可以继续进行Java EE 7的工作。一切进展顺利&#xff0c;Java EE 7现在处于“初稿审查”阶段。 在11月初&#xff0c; Oracle发布了一个有关即将推出的Java EE 7功能的小型社区调查 。 昨天结果公布了。 超过1,100名开发人员参加了调查&#xff0c;并且几乎对每个问…

CSS(三)

CSS盒子模型 盒子模型解释 元素在页面中显示成一个方块&#xff0c;类似一个盒子&#xff0c;CSS盒子模型就是使用现实中盒子来做比喻&#xff0c;帮助我们设置元素对应的样式。盒子模型示意图如下&#xff1a; 把元素叫做盒子&#xff0c;设置对应的样式分别为&#xff1a;盒…

南昌互联网行业协会筹办者祝真和华罡团队-2014年12月江西IDC排行榜

&#xfeff;&#xfeff;他出自军营&#xff0c;拥有一身正气。 他在南昌创业&#xff0c;立意卓越。 从站点開始、到微营销、到线上教育&#xff0c;全面开花。 他在朋友圈看到不对的内容&#xff0c;就会即时批评。 他对朋友&#xff0c;又是很的和蔼可亲。 他就是南昌华罡网…

我应该使用32位还是64位JVM?

这是我在企业软件开发生涯中多次遇到的问题。 我不得不每隔一段时间就提供有关配置特定新环境的建议。 而且&#xff0c;很多时候&#xff0c;手头的问题与“我应该使用32位或64位JVM”有关。 老实说&#xff0c;一开始我只是掷硬币。 而不是给出合理的答案。 &#xff08;对不…

android studio点击图片,如何在Android Studio中的模拟器图库中添加图像?

如何在Android Studio中的模拟器图库中添加图像&#xff1f;我正在开发图像过滤器应用程序。 但是&#xff0c;如果我没有任何图像&#xff0c;就无法真正尝试。我知道我可以在电话中对其进行测试&#xff0c;但这并不相同&#xff0c;因为我需要错误消息和其他内容。我只想从A…

android移动应用基础教程源代码,Android移动应用基础教程 【程序活动单元Activity】...

本章目录一、Activity的生命周期1、生命周期状态2 、生命周期方法3、横竖屏切换时的生命周期二、Activity的创建配置和关闭1、Activity的创建2、配置Activity3、开启和关闭Activity三、Intent与IntentFilter1、Intent介绍1.1 意图的概念1.2 显式意图1.3 隐式意图2、IntentFilte…

Python中使用subplot在一张画布上显示多张图

subplot(arg1, arg2, arg3) arg1: 在垂直方向同时画几张图arg2: 在水平方向同时画几张图arg3: 当前命令修改的是第几张图 t np.arange(0,5,0.1) y1 np.sin(2*np.pi*t) y2 np.sin(2*np.pi*t) plt.subplot(211) plt.plot(t,y1,b-.) plt.subplot(212) plt.plot(t,y2,r--) plt.s…

Java 8:从PermGen到元空间

您可能已经知道&#xff0c;现在可以下载JDK 8 Early Access 。 这使Java开发人员可以尝试Java 8的一些新语言和运行时功能。这些功能之一是完全删除自Oracle自JDK 7发行以来就宣布的Permanent Generation&#xff08;PermGen&#xff09;空间。例如&#xff0c;自JDK 7起&…

浏览器缓存问题原理以及解决方案

浏览器缓存问题&#xff1a; 简单来说&#xff0c;浏览器缓存就是把一个已经请求过的Web资源&#xff08;如html页面&#xff0c;图片&#xff0c;js&#xff0c;数据等&#xff09;拷贝一份副本储存在浏览器中。缓存会根据进来的请求保存输出内容的副本。当下一个请求来到的时…