页面导入导出EXCEL
引用
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的更多相关文章
- thinkphp导入导出excel表单数据
在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传e ...
- jxl导入/导出excel
1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOException; import ...
- 使用PHPExcel导入导出excel格式文件
使用PHPExcel导入导出excel格式文件 作者:zccst 因为导出使用较多,以下是导出实现过程. 第一步,将PHPExcel的源码拷贝到项目的lib下 文件包含:PHPExcel.ph ...
- NPOI导入导出Excel
.net mvc利用NPOI导入导出excel 注意:如何导出的提交方式ajax导出是失效的! 解决方案是:js处理l两个表单的提交 代码: 第一步. 在页面里面加入2个隐藏的iframe, 如下 ...
- jxl导入/导出excel(网上的案例)
jxl导入/导出excel 1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOExc ...
- 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 ...
- asp.net core web的导入导出excel功能
这里主要记录下asp.net core web页面上进行导入导出excel的操作. 主要是导入,因为现在使用的很多前端框架(例如kendo ui)本身就有导出的功能. 这里使用到EPPlus.Core ...
- Vue框架下实现导入导出Excel、导出PDF
项目需求:开发一套基于Vue框架的工程档案管理系统,用于工程项目资料的填写.编辑和归档,经调研需支持如下功能: Excel报表的导入.导出 PDF文件的导出 打印表格 经过技术选型,项目组一致决定通过 ...
- uniapp导入导出Excel
众所周知,uniapp作为跨端利器,有诸多限制,其中之一便是vue页面不支持传统网页的dom.bom.blob等对象. 所以,百度上那些所谓的导入导出excel的方法,大部分都用不了,比如xlsx那个 ...
随机推荐
- Spring Boot整合Spring Data JPA
1.JPA 2.Spring Data JPA 3.导入依赖 4.连接数据库 5.实体类 6.Repository 7.测试 1.JPA JPA是Java Persistence API的简称,中文名 ...
- jvm学习第二天
0.垃圾回收概述 1.什么是垃圾,怎么判断? 1.1引用计数法 含义 顾名思义,此种算法会在每一个对象上记录这个对象被引用的次数,只要有任何一个对象引用了此对象,这个对象的计数器就+1,取消对这个对象 ...
- DolphinScheduler源码分析之EntityTestUtils类
1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license ...
- burpsuite是用教程
1.下载burp suite工具 首先要明确,需要java环境,并且配置java环境变量 可以通过吾爱破解下载工具 工具: 双击打开后直接点next --> start burpsuite: 3 ...
- 500行SQL快速实现UCF
写在前面话 UCF通常是User-base Collaborative Filter的简写;大体的算法思路是根据用户行为计算相似群体(邻居),为用户推荐其邻居喜好的内容:感觉是不是很简单.那废话不多说 ...
- indexedDB数据库的使用
<!DOCTYPE html> <html> <head> <title>indexedDB数据库的使用</title> <meta ...
- B、小花梨的三角形(解题报告)
通过set进行标记(思想很简单,实现起来有点容易错)set(红黑树:效率高) 思路: 对行列和长度进行枚举: 对三个顶点进行排序 储存顶点后计数输出 #include<iostream> ...
- P1073 最优贸易(最短路)
题目描述 CC C国有n n n个大城市和m mm 条道路,每条道路连接这 nnn个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 mmm 条道路中有一部分为单向通行的道路,一部分为 ...
- HDU - 6287 口算训练 二分+质因数分解
小Q非常喜欢数学,但是他的口算能力非常弱.因此他找到了小T,给了小T一个长度为nn的正整数序列a1,a2,...,ana1,a2,...,an,要求小T抛出mm个问题以训练他的口算能力.每个问题给出三 ...
- 洛谷 P4017 最大食物链计数 (拓扑排序,思维)
题意:有\(n\)个点,连\(m\)条边,求最多有多少条食物链(从头走到为有多少条路径). 题解:之前抽了点时间把拓扑排序补完了,这题其实就是一道拓扑排序的裸题.关于拓扑排序: 1.首先,我们用\ ...