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相关推荐

  1. Acey.ExcelX实例演练(1)—从GridView中导出Excel报表

    Acey.ExcelX实例演练(1) -从GridView中导出Excel报表 关键词:GridView,数据绑定,Excel报表 在开发过程中我们经常遇到需要将页面中查看到的数据导出Excel的情况 ...

  2. npoi的mvc怎么ajax导出,asp.net mvc利用NPOI导入导出Excel解决方法

    asp.net mvc利用NPOI导入导出Excel 导出Excel 2003没有问题,导出Excel2007老是出现无法访问已关闭的流,请帮忙解决,或是哪位有mvc导入导出excel的工具类能提供, ...

  3. java excel data 导入数据_java实现导入导出excel数据

    项目需要,要实现一个导入导出excel的功能,于是,任务驱动着我学习到了POI和JXL这2个java操作Excel的插件. 一.POI和JXL介绍 1.POI:是对所有office资源进行读写的一套工 ...

  4. 【转】 (C#)利用Aspose.Cells组件导入导出excel文件

    Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...

  5. 让 .Net 更方便的导入导出 Excel

    让 .Net 更方便的导入导出Excel Intro 因为前一段时间需要处理一些 excel 数据,主要是导入/导出操作,将 Excel 数据转化为对象再用程序进行处理和分析,没有找到比较满意的库,于 ...

  6. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  7. java导入导出excel_Java导入导出Excel工具 easyexcel

    Java导入导出Excel工具  easyexcel 做Java开发的同学,尤其是做管理后台的同学绝大多数都会接触到报表系统,这时候就少不了Excel的导入和导出了.Java解析生成Excel比较有名 ...

  8. Java导入导出Excel工具类ExcelUtil

    前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hiberna ...

  9. com.alibaba.easyexcel导出指定的列_使用Python导入导出Excel表格

    这篇文章的目的是讲解使用python导入导出Excel表格,目前还不涉及数据处理,主要实现为数据的展示. 第一步,准备材料 python3.8的安装包 一个Excel表格 第二步,安装软件 pytho ...

最新文章

  1. 配置文件总结(机房重构知识点总结)
  2. java inflaterinputstream_java.util.zip.InflaterInputStream.available()方法示例
  3. HDU 3308 线段树求区间最长连续上升子序列长度
  4. h5 修改title 微信_微信h5网页自定义分享(标题、描述、图标)
  5. nessus 漏洞扫描器
  6. java向数组中增加新元素_用Java中的新元素替换List的给定索引处的元素
  7. chrome 使用gpu 加速_DLI每周一课|用CUDA C的GPU加速库加速应用程序(新人有礼)
  8. 处理血压信号_测血压检测健康,8款高品质血压计推荐
  9. manjaro 安装mysql_manjaro安装mysql5.7
  10. php ecdsa secp256k1,从上的压缩派生ECDSA未压缩公钥
  11. 《遥感原理与应用》孙家抦版知识点总结(含简答题、论述题)——第八章
  12. 最简单的STM32入门教程----闪烁LED
  13. 算法中的数学基础知识
  14. 低成本佐川泽川圣安变频器设计方案
  15. 尼得科薄型横向线性Slider系列震动马达
  16. 关于安卓自定义进度条(二)
  17. 微信小程序 自动对对联
  18. 2023年阿里云优惠活动大全及购买攻略(完整版)
  19. 数学建模笔记CH2:微积分方法建模
  20. win7安装office2010

热门文章

  1. android 人生日历,android版人生日历日子怎么用 安卓版人生日历日子使用教程
  2. java 1.8 tar.gz_linux安装java1.8
  3. uni-app在iOS移动端页面上下滑动关闭(页面回弹问题,非刷新)
  4. AndoridSQLite数据库开发基础教程(7)
  5. 分享Kali Linux 2017年第23周镜像文件
  6. 北航计算机学院编译原理,1 北航本科编译原理课件课本 张莉.pdf
  7. 在matlab中可以计算式子的最大值吗,matlab求最大值
  8. 博世力士乐液压_A10VSO71DFR1/31RPPA12N00力士乐柱塞泵原装现货
  9. php跟web前端的区别,php与javascript的区别是什么?
  10. 找出重复的数java_剑指offer:1.找出数组中重复的数(java版)