巧用DevExpress GridView导入导出Excel
1、Excel数据导入到数据库中:
在页面放置1个按钮控件(Button1)和1个文件上传控件(FileUpload1)»更多DevExpress开发资源与帮助文档
protected void Page_Load(object sender, EventArgs e)
{
GridView1.Visible = false;
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
if (FileUpload1.PostedFile.FileName != "")
{
string filepath = FileUpload1.PostedFile.FileName;
string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);
string sheetname = "Sheet1";
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "$]", conn);
DataSet ds = new DataSet();
oada.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
GridView1.Visible = true;
}
}
catch (Exception error)
{
this.Label1.Text = "上传发生错误!原因:" + error.ToString();
}
}
注意把Excel文件属性中加入ASPNET用户权限,不然不能导入
3、将数据库中的数据导入Excel中,在这里我讲叙自己实践中的两个方法:
方法一:从最基本的写文件入手,将从数据库中读出来的数据写入到Excel中;
//该方法实现将数据导入到Excel文件中,其中的DataTable dt就是你需要将数据写入到Excel中的数据;
public void ExportExcel( DataTable dt , StreamWriter w )
...{
try
...{
for( int i = 0 ; i < dt.Columns.Count ; i ++ )
...{
w.Write ( dt.Columns[i] );
w.Write( ' ' );
}
w.Write ( " " );
object[] values = new object [dt.Columns.Count];
foreach ( DataRow dr in dt.Rows )
...{
values = dr.ItemArray ;
for ( int i = 0 ; i < dt.Columns.Count ; i++ )
...{
w.Write ( values[i] );
w.Write ( ' ' );
}
w.Write ( " " );
}
w.Flush();
w.Close();
}
catch
...{
w.Close();
}
}
StreamWriter w就是你自己创建的一个流,创建该数据流时,你需要自己指定需要将数据写入到那个文件,即指定文件路径,要实现下载的话,就可以简单的用Response.Redirect
( "指定需要被下载的文件路径" );
方法二:该方法实现的是将数据从DataGrid中导入到Excel中:
//filename为Excel的名字,ToExcelGrid就是数据源,在此为DataGrid数据源;
private void ExportExcelFromDataGrid( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
...{
Response.Clear();
Response.Buffer= true;
Response.Charset="utf-8";
Response.AppendHeader("Content-Disposition","p_w_upload;filename="+Server.UrlEncode ( filename ) );
Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
Excel导出:
页面上放一个GridView控件,ID为GridView1,添加个导出按钮ID为Button2
protected void Button2_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "p_w_upload;filename=FileName.xls");
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
页面后台必须重写这两个方法,不然出现错误!
public override void VerifyRenderingInServerForm( Control control )
{
}
protected override void Render(HtmlTextWriter writer)
{
if (Page != null)
{
Page.VerifyRenderingInServerForm(this);
}
base.Render(writer);
}
将GridView打印出来,添加个打印按钮,ID为Button4
protected void Button4_Click(object sender, EventArgs e)
{
Response.Write("<script> window.print()</script>");
}
转载于:https://blog.51cto.com/mikez1026/1292381
巧用DevExpress GridView导入导出Excel相关推荐
- Acey.ExcelX实例演练(1)—从GridView中导出Excel报表
Acey.ExcelX实例演练(1) -从GridView中导出Excel报表 关键词:GridView,数据绑定,Excel报表 在开发过程中我们经常遇到需要将页面中查看到的数据导出Excel的情况 ...
- npoi的mvc怎么ajax导出,asp.net mvc利用NPOI导入导出Excel解决方法
asp.net mvc利用NPOI导入导出Excel 导出Excel 2003没有问题,导出Excel2007老是出现无法访问已关闭的流,请帮忙解决,或是哪位有mvc导入导出excel的工具类能提供, ...
- java excel data 导入数据_java实现导入导出excel数据
项目需要,要实现一个导入导出excel的功能,于是,任务驱动着我学习到了POI和JXL这2个java操作Excel的插件. 一.POI和JXL介绍 1.POI:是对所有office资源进行读写的一套工 ...
- 【转】 (C#)利用Aspose.Cells组件导入导出excel文件
Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...
- 让 .Net 更方便的导入导出 Excel
让 .Net 更方便的导入导出Excel Intro 因为前一段时间需要处理一些 excel 数据,主要是导入/导出操作,将 Excel 数据转化为对象再用程序进行处理和分析,没有找到比较满意的库,于 ...
- ASP.NET Core 导入导出Excel xlsx 文件
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
- java导入导出excel_Java导入导出Excel工具 easyexcel
Java导入导出Excel工具 easyexcel 做Java开发的同学,尤其是做管理后台的同学绝大多数都会接触到报表系统,这时候就少不了Excel的导入和导出了.Java解析生成Excel比较有名 ...
- Java导入导出Excel工具类ExcelUtil
前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hiberna ...
- com.alibaba.easyexcel导出指定的列_使用Python导入导出Excel表格
这篇文章的目的是讲解使用python导入导出Excel表格,目前还不涉及数据处理,主要实现为数据的展示. 第一步,准备材料 python3.8的安装包 一个Excel表格 第二步,安装软件 pytho ...
最新文章
- SAP ABAP 点滴记录
- STL源代码分析(ch2 内存分配)概述
- HDU-1569 方格取数(2) 最小割最大流
- Appointment detail page loading never ends in Zeiss
- JAVA中的toString()方法的用法
- Oracle 19.8新特性asmcmd credverify and asmcmd credfix
- Xcode:PhoneGap 2.5.0项目创建方法
- mysql safe 模式_MYSQL的安全模式:sql_safe_updates介绍
- 计算机组成原理同步测试,计算机组成原理白中英单元练习题
- u盘装系统放iso文件还是gho文件?
- mysql安装+navicat激活
- 计算机毕业设计springboot基于springboot框架的企业合同管理系统设计与实现
- matlab正弦波用示波器测失真,请教下,自己做个正弦波信号发生器,如何测试波形的失真大小?...
- this.name=name;中两个name都是什么意思?
- 稻盛和夫的经营十二条
- 「Python条件结构」显示学号及提示信息
- unet预测图片全黑/全灰解决方案(keras)
- 微生物和微生物组的定义以及发展史
- java模糊查询、自动补全的实现
- Cunti 使用简介
热门文章
- Symantec Endpoint Protection 11 混乱的版本
- ASP.NET的用户控件
- GRDB自定义的纯函数
- linux nexus状态,linux 启动 nexus
- python连接sqlserver_python 链接sqlserver 写接口实例
- java线程池拒绝策略_Java核心知识 多线程并发 线程池原理(二十三)
- 三菱伺服电机选型手册_PLC触摸屏控制伺服电机程序设计
- c#结合emgucv进行人脸检测_人脸识别与测温结合在办公场景有哪些应用?
- [建筑可视化]Evermotion-Archinteriors for UE4
- 韦布望远镜睁眼看到第一缕星光,镜面校准进行时