引用

using Microsoft.Office.Interop.Excel;
using System.Reflection;//反射命名空间
using System.IO;

protected void Button1_Click(object sender, EventArgs e)
{
//项目引入Microsoft.office.Excel组件
//导出二大部分
//第一部分,生成EXCEL文件

//对象1 应用程序对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//对象2 工作薄对象
Workbook book = excel.Workbooks.Add(Missing.Value);
//对象3 工作表对象(工作薄中的第一个工作表)
Worksheet worksheet = (Worksheet)book.Worksheets[1];

////////////////////////////////////////////////////////////////////////////////////////
worksheet.Name = "N-Tier";
worksheet.Cells[5, 6] = "欢迎学习 N-Tier";//注意定义单元格中的方法

worksheet.get_Range("A2", Missing.Value).Value2 = "星期";
worksheet.get_Range("A2", Missing.Value).Font.Name = "黑体";
worksheet.get_Range("A2", Missing.Value).Font.Size = 14;
worksheet.get_Range("A2", Missing.Value).RowHeight = 28;

worksheet.get_Range("A1", "Y1").MergeCells = true;//合并单元格
worksheet.get_Range("A1", "Y1").Value2 = "教室机房周占用表";
worksheet.get_Range("A1", "Y1").HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
worksheet.get_Range("A1", "Y1").VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignBottom;
worksheet.get_Range("A1", "Y1").Font.Bold = true;
worksheet.get_Range("A1", "Y1").Font.Name = "黑体";
worksheet.get_Range("A1", "Y1").Font.Size = 20;
worksheet.get_Range("A1", "Y1").RowHeight = 63;
///////////////////////////////////////////////////////////////////////////
//保存EXCEL部分
excel.Visible = false;//应用程序可见
//Excel文件名
string excelName = Server.MapPath("~/temp/")+DateTime.Now.ToString("yyyyMMdd-hhmmss")+".xls";
excel.ActiveWorkbook.SaveAs(excelName, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value);
//关闭工作薄
excel.ActiveWorkbook.Close(true, Missing.Value, Missing.Value);
//退出应用程序
excel.Quit();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//第二部分,把生成EXCEL文件下载
DownLoadFile(excelName, "学生信息表.xls", this);

/////////////////////////////////////////////////////////////////

}

#region DownLoadFile
/// <summary>
/// 下载所有类型文件通用
/// </summary>
/// <param name="fileName">文件的虚拟路径</param>
/// <param name="downFileName">新名称</param>
/// <param name="page">下载的页面对象</param>
public void DownLoadFile(string fileName, string downFileName, Page page)
{
//清除缓冲区中的所有HTML输出
page.Response.Clear();
page.Response.Buffer = true;
//设置输出流的HTTP字符集
page.Response.Charset = "utf-8";
//attachment参数表示作为附件下载
string attachment = "attachment; filename=" + HttpUtility.UrlEncode(downFileName, System.Text.Encoding.UTF8);
page.Response.AddHeader("content-disposition", attachment);
//设置输出流的HttpMIMe类型(以流形式输出)
page.Response.ContentType = "application/octent-stream";
page.Response.WriteFile(fileName);
page.Response.End();
}
#endregion
protected void Button2_Click(object sender, EventArgs e)
{
//项目引入Microsoft.office.Excel组件
//导出二大部分
//第一部分,生成EXCEL文件

//对象1 应用程序对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//对象2 工作薄对象
Workbook book = excel.Workbooks.Add(Missing.Value);
//对象3 工作表对象(工作薄中的第一个工作表)
Worksheet worksheet = (Worksheet)book.Worksheets[1];

////////////////////////////////////////////////////////////////////////////////////////
DataClassesDataContext datacontext = new DataClassesDataContext();
var stusList = datacontext.Student.ToList();

for (int i = 0; i <stusList.Count; i++)
{
worksheet.Cells[i + 1, 1] = stusList[i].Name;
worksheet.Cells[i + 1, 2] = stusList[i].Sex;
}

///////////////////////////////////////////////////////////////////////////
//保存EXCEL部分
excel.Visible = false;//应用程序可见
//Excel文件名
string excelName = Server.MapPath("~/temp/") + DateTime.Now.ToString("yyyyMMdd-hhmmss") + ".xls";
excel.ActiveWorkbook.SaveAs(excelName, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value);
//关闭工作薄
excel.ActiveWorkbook.Close(true, Missing.Value, Missing.Value);
//退出应用程序
excel.Quit();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//第二部分,把生成EXCEL文件下载
DownLoadFile(excelName, "ss学生信息表.xls", this);
}

页面导入导出EXCEL的更多相关文章

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

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

  2. jxl导入/导出excel

    1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOException; import ...

  3. 使用PHPExcel导入导出excel格式文件

    使用PHPExcel导入导出excel格式文件  作者:zccst  因为导出使用较多,以下是导出实现过程.  第一步,将PHPExcel的源码拷贝到项目的lib下  文件包含:PHPExcel.ph ...

  4. NPOI导入导出Excel

    .net mvc利用NPOI导入导出excel 注意:如何导出的提交方式ajax导出是失效的! 解决方案是:js处理l两个表单的提交  代码:  第一步. 在页面里面加入2个隐藏的iframe, 如下 ...

  5. jxl导入/导出excel(网上的案例)

    jxl导入/导出excel 1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOExc ...

  6. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  7. asp.net core web的导入导出excel功能

    这里主要记录下asp.net core web页面上进行导入导出excel的操作. 主要是导入,因为现在使用的很多前端框架(例如kendo ui)本身就有导出的功能. 这里使用到EPPlus.Core ...

  8. Vue框架下实现导入导出Excel、导出PDF

    项目需求:开发一套基于Vue框架的工程档案管理系统,用于工程项目资料的填写.编辑和归档,经调研需支持如下功能: Excel报表的导入.导出 PDF文件的导出 打印表格 经过技术选型,项目组一致决定通过 ...

  9. uniapp导入导出Excel

    众所周知,uniapp作为跨端利器,有诸多限制,其中之一便是vue页面不支持传统网页的dom.bom.blob等对象. 所以,百度上那些所谓的导入导出excel的方法,大部分都用不了,比如xlsx那个 ...

随机推荐

  1. linux系统计划任务

    at crontab 一次性计划任务 周期性计划任务 摘要:linux系统中,可以通过crontab和at两种命令实现计划任务: 计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据. ...

  2. 6.DHCP配置故障转移(Windows2012)

    准备: 子网对应核心交换机网关配置多个中继 interface Vlan64 ip address 10.10.64.1 255.255.248.0 ip helper-address 10.10.1 ...

  3. Cobaltstrike去除特征

    出品|MS08067实验室(www.ms08067.com) 本文作者:BlackCat(Ms08067实验室内网小组成员) 前言: 红蓝对抗的时候,如果未修改CS特征.容易被蓝队溯源. 去特征的几种 ...

  4. cassandra权威指南读书笔记--引言概要

    数据库事务正确执行的四个基本要素事务要有四个基本要素:ACID:原子性(Atomic).一致性(Consistent).隔离性(Isolated).持久性(Durable)原子性(Atomic):整个 ...

  5. 【uva 753】A Plug for UNIX(图论--网络流最大流 Dinic)

    题意:有N个插头,M个设备和K种转换器.要求插的设备尽量多,问最少剩几个不匹配的设备. 解法:给读入的各种插头编个号,源点到设备.设备通过转换器到插头.插头到汇点各自建一条容量为1的边.跑一次最大流就 ...

  6. poj 3304 Segments(解题报告)

    收获:举一反三:刷一道会一道 1:思路转化:(看的kuangbin的思路) 首先是在二维平面中:如果有很多线段能够映射到这个直线上并且至少重合于一点,充要条件: 是过这个点的此条直线的垂线与其他所有直 ...

  7. Spring Cloud实战: 基于Spring Cloud Gateway + vue-element-admin 实现的RBAC权限管理系统,实现网关对RESTful接口方法权限和自定义Vue指令对按钮权限的细粒度控制

    一. 前言 信我的哈,明天过年. 这应该是农历年前的关于开源项目 的最后一篇文章了. 有来商城 是基于 Spring Cloud OAuth2 + Spring Cloud Gateway + JWT ...

  8. 【原创】k8s之job和Cronjob

    1.失败任务 apiVersion: batch/v1 kind: Job metadata: name: bad spec: template: metadata: name: bad spec: ...

  9. Java之先行发生原则与volatile关键字详解

    volatile关键字可以说是Java虚拟机提供的最轻量级的同步机制,但是它并不容易完全被正确.完整地理解,以至于许多程序员都习惯不去使用它,遇到需要处理多线程数据竞争问题的时候一律使用synchro ...

  10. Gym102361A Angle Beats(直角三角形 计算几何)题解

    题意: \(n\)个点,\(q\)个询问,每次问包含询问点的直角三角形有几个 思路: 代码: #include<bits/stdc++.h> using namespace std; co ...