1. 前台: <asp:Button ID="btndao" runat="server"  Text="导出excel文件" onclick="btndao_Click"></asp:Button>
  2.  
  3. cs
  1. protected void btndao_Click(object sender, EventArgs e)
  2.     {
  3.         this.ExportExcel();
  4.     }
  5.     /// <summary>
  6.     /// 导出数据到Ecxc
  7.     /// </summary>
  8.     private void ExportExcel()
  9.     {
  10.         using (aosmithnewEntities db = new aosmithnewEntities())
  11.         {
  12.             List<ReservationForm> formlist = db.ReservationForm.OrderBy(=> o.States).ThenByDescending(=> o.AddTime).ToList();
  13.             string SavaFilesPath = globalVariables.Download + Guid.NewGuid() + ".xls";
  14.             if (formlist == null || formlist.Count == 0)
  15.             {
  16.                 throw new Exception("没有数据可导出。");
  17.             }
  18.             //建立一个Excel进程 Application
  19.             Application excelApplication = new Application();
  20.  
  21.             //默认值为 True。如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,请将本属性设置为 False;这样每次出现需用户应答的消息时,Microsoft Excel
  22.             // 将选择默认应答。
  23.             //如果将该属性设置为 False,则在代码运行结束后,Micorosoft Excel 将该属性设置为 True,除非正运行交叉处理代码。
  24.             //如果使用工作簿的 SaveAs 方法覆盖现有文件,“覆盖”警告默认为“No”,当 DisplayAlerts 属性值设置为 True 时,Excel 选择“Yes”。
  25.             excelApplication.DisplayAlerts = false;
  26.  
  27.             //  建立或打开一个 Workbook对象生成新Workbook
  28.             Workbook workbook = excelApplication.Workbooks.Add(Missing.Value);
  29.             int i = 2;
  30.             Worksheet lastWorksheet = (Worksheet)workbook.Worksheets.get_Item(workbook.Worksheets.Count);
  31.             Worksheet newSheet = (Worksheet)workbook.Worksheets.Add(Type.Missing, lastWorksheet, Type.Missing, Type.Missing);
  32.             newSheet.Cells[1, 1] = "产品类型";
  33.             newSheet.Cells[1, 2] = "型号";
  34.             newSheet.Cells[1, 3] = "安装/维保";
  35.             newSheet.Cells[1, 4] = "问题描述";
  36.             newSheet.Cells[1, 5] = "手机";
  37.             newSheet.Cells[1, 6] = "其他联系方式";
  38.             newSheet.Cells[1, 7] = "联系人姓名";
  39.             newSheet.Cells[1, 8] = "省份";
  40.             newSheet.Cells[1, 9] = "城市";
  41.             newSheet.Cells[1, 10] = "城(区)县";
  42.             newSheet.Cells[1, 11] = "详细地址";
  43.             newSheet.Cells[1, 12] = "上门时间";
  44.             newSheet.Cells[1, 13] = "其他要求";
  45.             newSheet.Cells[1, 14] = "表单状态";
  46.             ((Range)newSheet.Rows.get_Item(1)).Font.Bold = true;
  47.             foreach (var dt in formlist)
  48.             {
  49.                 //DateTime dtime = DateTime.Now;
  50.                 newSheet.Cells[i, 1] = dt.ProductCategoryName;
  51.                 newSheet.Cells[i, 2] = dt.Model;
  52.                 newSheet.Cells[i, 3] = dt.FormName;
  53.                 newSheet.Cells[i, 4] = dt.Description;
  54.                 newSheet.Cells[i, 5] = dt.Mobile;
  55.                 newSheet.Cells[i, 6] = dt.TelPhone;
  56.                 newSheet.Cells[i, 7] = dt.ContactsName;
  57.                 newSheet.Cells[i, 8] = dt.ProvinceName;
  58.                 newSheet.Cells[i, 9] = dt.CityName;
  59.                 newSheet.Cells[i, 10] = dt.DistrictName;
  60.                 newSheet.Cells[i, 11] = dt.Address;
  61.                 newSheet.Cells[i, 12] = dt.ServicesTime;
  62.                 newSheet.Cells[i, 13] = dt.Other;
  63.                 if (int.Parse(dt.States.ToString()) != 0)
  64.                 {
  65.                     newSheet.Cells[i, 14] = "已处理";
  66.  
  67.                 }
  68.                 else 
  69.                 {
  70.                     newSheet.Cells[i, 14] = "未处理";
  71.                 }
  72.                 i++;
  73.             }
  74.             newSheet.Cells.Columns.AutoFit();
  75.             //删除原来的空Sheet
  76.             ((Worksheet)workbook.Worksheets.get_Item(1)).Delete();
  77.             ((Worksheet)workbook.Worksheets.get_Item(1)).Delete();
  78.             ((Worksheet)workbook.Worksheets.get_Item(1)).Delete();
  79.             //设置默认选中是第一个Sheet 类似于Select();
  80.             ((Worksheet)workbook.Worksheets.get_Item(1)).Activate();
  81.             try
  82.             {
  83.                 workbook.Close(true, SavaFilesPath, Missing.Value);
  84.             }
  85.             catch (Exception e)
  86.             {
  87.                 throw e;
  88.             }
  89.             UploadExcel(SavaFilesPath, true);
  90.             excelApplication.Quit();
  91.         }
  92.     }
  93.     /// <summary>
  94.     /// 提供下载
  95.     /// </summary>
  96.     /// <param name="path"></param>
  97.     /// <param name="page"></param>
  98.     ///  <param name="isDelete"></param>
  99.     private static void UploadExcel(string path, bool isDelete)
  100.     {
  101.         FileInfo file = new FileInfo(path);
  102.         HttpContext.Current.Response.Clear();
  103.         HttpContext.Current.Response.Charset = "GB2312";
  104.         HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
  105.         // 添加头信息,为"文件下载/另存为"对话框指定默认文件名
  106.         HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.Name));
  107.         // 添加头信息,指定文件大小,让浏览器能够显示下载进度
  108.         HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
  109.         // 指定返回的是一个不能被客户端读取的流,必须被下载
  110.         HttpContext.Current.Response.ContentType = "application/ms-excel";
  111.         // 把文件流发送到客户端
  112.         HttpContext.Current.Response.WriteFile(file.FullName);
  113.         HttpContext.Current.Response.Flush();
  114.         if (isDelete)
  115.         {
  116.             File.Delete(path);
  117.         }
  118.         // 停止页面的执行
  119.         HttpContext.Current.Response.End();
  120.  
  121.     }
  1.  

导出excel表功能的更多相关文章

  1. 传参导出Excel表乱码问题解决方法

    业务场景 先描述一下业务场景,要实现的功能是通过搜索框填写参数,然后点击按钮搜索数据,将搜索框的查询参数获取,附加在链接后面,调导Excel表接口,然后实现导出Excel功能.其实做导Excel表功能 ...

  2. thinkphp导入导出excel表单数据

    在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传e ...

  3. 【ITOO 1】将List数据导出Excel表

    需求描述:在课表导入的时候,首先给用户提供模板(excel),然后将用户填写好的数据读取到list集合中.再进行判空处赋值处理,以及去重处理.这篇博客,主要介绍读取excel表和导出excel表的方法 ...

  4. ASP.NET导出excel表方法汇总

    asp.net里导出excel表方法汇总  1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) ...

  5. DateGridew导出Excel表+常见错误提示

    在敲机房收费系统的时候,显示数据的时候需要将DateGridew 中的数据导出进Excel表.DateGridew导出Excel表是比较常见的,当然导出Excel表有很多种方法,下面是个人认为比较容易 ...

  6. 前端导出excel表

    前端导出excel表 方式一: 前端js实现 : https://www.cnblogs.com/zhangym118/p/6235801.html 方式二: java后端实现: https://bl ...

  7. C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation

    C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation 后台添加以下方法:/// <summa ...

  8. vue+element UI如何导出excel表

    导出excel表应按如下规则 首先要先安装如下依赖 npm install --save xlsx npm install --save file-saver 接下在在你的代码中去引用这两个 impo ...

  9. 微擎 人人商城 导出excel表分析

    在 数据处理上 ,有很多时候需要导出excel表  来当报表, 等 ,  php  人人商城导出报表过程简单分析 在导出时候发现 ca('statistics.order.export'); 出于好奇 ...

随机推荐

  1. Python中将打印输出导向日志文件

    a. 利用sys.stdout将print行导向到你定义的日志文件中,例如: import sys # make a copy of original stdout route stdout_back ...

  2. Perl模块的安装方法

    1. 下载离线安装包 *.tar.gz的形式解包后,#perl Makefile.PL#make#make install 2. 在联网的情况下,通过CPAN安装# perl -MCPAN -e sh ...

  3. 织梦DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法

    在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{dede:field name='typename' /} 可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名 ...

  4. 九度OJ1207

    题目给你了一个很大的n,然后让你去计算它的质因数.对N进行开方得到的是一个大约在32000左右的数,我们可以用埃氏筛法进行素数打表.对所有prime[i]<=sqrt(n),分别看prime[i ...

  5. 第七届蓝桥杯C++B组省赛

    1.煤球数目 2.生日蜡烛 3.凑算式 4.快速排序 5.抽签 6.方格填数 7.剪邮票 8.四平方和 9.交换瓶子 10.最大比例 今天是周三了,周天刚考完,这次做的还是不好(上次是全省最后一名). ...

  6. dwr NoSuchBeanDefinitionException

    使用SpringMVC spring  dwr时,dwr使用的bean,要将bean配置到根webapplicationcontext中,即applicationContext.xml中, 不能放到d ...

  7. 高可用HA,高性能

    天天开发,免不了听一些技术论坛,都是专业的词汇,没听过就很陌生,记录一下. ======================================================== 高可用: ...

  8. 1、程序启动原理和UIApplication【转】

    一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplica ...

  9. Java中List转数组,必须带个参数

    public static void main(String[] args) { List<String> lst = new ArrayList(); lst.add("赵云 ...

  10. Unity AssetBundles and Resources指引 (二) Resources文件夹

    本文内容主要翻译自下面这篇文章 https://unity3d.com/cn/learn/tutorials/topics/best-practices/guide-assetbundles-and- ...